1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[PHP]Checkbox e RadioButtons

Discussão em 'Web Development' iniciada por eXcept, 4 de Novembro de 2005. (Respostas: 13; Visualizações: 8812)

  1. eXcept

    eXcept Power Member

    Viva.

    Quando faço o submit para um PHP, em que o form apresenta checkbox's e radiobuttons, que valores é que ele submete?

    0s e 1s? sendo 0 = false e 1 = true?

    Ou outra coisa qualquer?
     
  2. turbulence

    turbulence Power Member

    isso defines tu!

    uma checkbox ou uma radiobutton tem num nome, por exemplo: "sexo" e dpz cada checkbox tb tem um value, e esse value pode ser o que quiseres, por exemplo uma chexkbox com o value "m" e outra com o value "f"

    depois ja podes fazer:
    if ($_post['sexo'] == "m") { echo "Homem"; }
    else { echo "Mulher"; }

    percebido? :D
     
  3. eXcept

    eXcept Power Member

    ora vamos lá a ver, porque nao estou a conseguir trabalhar sobre isso

    tenho em HTML

    Código:
    <input type="checkbox" name="temail" value="1"></td>
    dps, no php, faço

    Código:
    echo $_POST['temail'];
    e recebo

    Código:
    Notice: Undefined index: temail in c:\program files\easyphp1-8\www\informatica\diario.php on line 21
    não deveria receber o valor 1, caso estivesse checkado?

    e no caso de não estar checkado, não deveria aparecer outra coisa qq? Tenho sempre de testar a variável? Isso dá mt trabalho, dado que só kero meter um 0 ou 1, dependendo se está checkado ou não...

    EDIT: tenho cerca de 40 checkbox's nesta pg, são 4 pgs parecidas, estava desgraçado se tivesse de as testar todas:|
     
    Última edição: 5 de Novembro de 2005
  4. alph

    alph Power Member

    Faz print_r($_POST); para veres os conteúdos da array $_POST e verás o que retorna.
     
  5. eXcept

    eXcept Power Member

    percebi, se não tiver checkado, não faz o POST de nada :|

    isso vai dar-me 1 carga de trabalhos, para verificar uma a uma :|

    Ok, tks pela ajuda, se conhecerem alguma forma mais simples de fazer isto, avisem..
     
  6. eXcept

    eXcept Power Member

    Já agora, existe em PHP qq mecanismo do género try catch para, se encontrar qualquer erro que seja, saltar logo fora da execução e dar uma msg de erro personalizada?
     
  7. alph

    alph Power Member

  8. turbulence

    turbulence Power Member

    n tas a usar Apache??

    nunca tive um erro destes...
    Notice: Undefined index: temail in c:\program files\easyphp1-8\www\informatica\diario.php on line 21
     
  9. eXcept

    eXcept Power Member

    não pretendia esconder os erros, mas sim algo do género, se houvesse um erro, seja ele qual for, dar a msg ao utilizador e dps fazer um back,ou algo assim

    Em JAVA existe o try catch, do genero...

    try {

    code blablabla
    } catch { mensagem se o code acima falhar }


    seria algo do género..
     
  10. CrazyBomber

    CrazyBomber Power Member

    RadioButtons não sei (ainda não fiz nenhum lol), mas checkboxes não têm valor, só têm nome. Só se estiverem seleccionadas é que aparecem no array.
    Por isso, para veres se uma checkbox está seleccionada, podes usar: if( isset( $_POST[ 'nome' ] ) )...
    Infelizmente, tens mesmo de fazer a verificação para cada uma delas, i think.
     
  11. vhpv

    vhpv Power Member

    podes resolver isso facilmente com um foreach. assim o loop verifica os valores todos de um array ;)
     
  12. MX+

    MX+ Power Member

    Mais simples ainda sem teres muito trabalho :)

    PHP:
    if ( isset( $_POST["temail"] ) ) {
        echo 
    $_POST["temail"];
    }

    Esta é uma das regras básicas que se deve usar em PHP.

    Cumprimentos.
     
  13. p3dro

    p3dro Power Member

    penso que assim tbém n dê Notice Warning

    PHP:
    $temail = (isset($_POST["temail"])) ? $_POST["temail"] : "";
    echo 
    $temail;
     
  14. MX+

    MX+ Power Member

    Verdade :D
    Até sugiro ao criador do tópico que crie uma função.

    PHP:
    function input$key ) {
        return isset(
    $_POST[$key]) ? $_POST[$key] : NULL;
    }

    $temail input("temail");
     

Partilhar esta Página