PDA

View Full Version : [PHP]Checkbox e RadioButtons


eXcept
04-11-2005, 00:46
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?

turbulence
04-11-2005, 12:27
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

eXcept
05-11-2005, 22:19
ora vamos lá a ver, porque nao estou a conseguir trabalhar sobre isso

tenho em HTML

<input type="checkbox" name="temail" value="1"></td>

dps, no php, faço

echo $_POST['temail'];

e recebo

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:|

alph
05-11-2005, 22:35
Faz print_r($_POST); para veres os conteúdos da array $_POST e verás o que retorna.

eXcept
05-11-2005, 22:39
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..

eXcept
05-11-2005, 23:07
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?

alph
05-11-2005, 23:42
http://pt.php.net/errorfunc

Costumo optar por omitir os erros.

turbulence
06-11-2005, 00:06
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

eXcept
06-11-2005, 00:08
http://pt.php.net/errorfunc

Costumo optar por omitir os erros.

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..

CrazyBomber
06-11-2005, 14:07
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.

vhpv
31-05-2007, 13:53
podes resolver isso facilmente com um foreach. assim o loop verifica os valores todos de um array ;)

MX+
02-06-2007, 16:26
Mais simples ainda sem teres muito trabalho :)

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



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

Cumprimentos.

p3dro
02-06-2007, 17:04
Mais simples ainda sem teres muito trabalho :)

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



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

Cumprimentos.

penso que assim tbém n dê Notice Warning

$temail = (isset($_POST["temail"])) ? $_POST["temail"] : "";
echo $temail;

MX+
02-06-2007, 17:18
penso que assim tbém n dê Notice Warning

$temail = (isset($_POST["temail"])) ? $_POST["temail"] : "";
echo $temail;

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


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

$temail = input("temail");