Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

golfe

PHP e as Forms

Mensagens Recomendadas

golfe

Pessoal estou a fazer uma cena em php e numa página onde tenho várias input text forms e input checkbox forms. Como não podia deixar de ser cada input text tem um nome assciado e que têm de ser diferentes, escolhi então os seguintes nomes res1, res2, ...até res18. Quis fazer um fazer um teste para verificar se o utilizador introduziu dados em todos os input texts.

Relativamente às text forms fiz o seguinte:

<?php
for ( $counter = 1; $counter <= 18; $counter += 1) {
    
        if (!$res[$counter]|| !$putt[$counter]){
        echo 'Preencha os dados todos. É obrigatório preencher todos os resultados';
        exit;
        }
    }
?>

Algo aqui está mal em termos de código pois recebo mensagem de erro. Tem de certeza relação com a forma de introduzir o contador na variável $res. Na verdade não tenho nenhuma variável $res, somente as $ res1, $res2, ...até $res18. Será que é possivel fazer o que fiz?

Outro problema pende-se com as Checkbox's, nas respectivas forms definias da seguinte forma

<input type="checkbox" value="1" name="Fairw1">

Neste caso o utilizador pode ou não fazer check, no caso de optar por clicar no checkbox o programa corre bem mas no caso de não o fazer recebo mensagem de erro. Achava eu que no caso de não se clicar na checkbox que o seu valor seria 0, só passaria a 1 se fosse seleccionada. Pelos visto não :wallbash:

Recebo esta resposta que está relacionada com a checkbox.

"Notice: Undefined index: fairw1 in C:\wamp\www\golf_stats\gravarresultado.php on line 38 "Será que me podem ajudar?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
cyclop

if isset antes de fazers, btw... tenta colocar no html no name="nomequequeres[]" depois é so foreach de $_POST['nomequequeres']


"Quando eu for grande quero ser como o Celso"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jcfr

Pessoal estou a fazer uma cena em php e numa página onde tenho várias input text forms e input checkbox forms. Como não podia deixar de ser cada input text tem um nome assciado e que têm de ser diferentes, escolhi então os seguintes nomes res1, res2, ...até res18. Quis fazer um fazer um teste para verificar se o utilizador introduziu dados em todos os input texts.

Relativamente às text forms fiz o seguinte:

<?php
for ( $counter = 1; $counter <= 18; $counter += 1) {
    
        if (!$res[$counter]|| !$putt[$counter]){
        echo 'Preencha os dados todos. É obrigatório preencher todos os resultados';
        exit;
        }
    }
?>

Algo aqui está mal em termos de código pois recebo mensagem de erro. Tem de certeza relação com a forma de introduzir o contador na variável $res. Na verdade não tenho nenhuma variável $res, somente as $ res1, $res2, ...até $res18. Será que é possivel fazer o que fiz?

Outro problema pende-se com as Checkbox's, nas respectivas forms definias da seguinte forma

<input type="checkbox" value="1" name="Fairw1">

Neste caso o utilizador pode ou não fazer check, no caso de optar por clicar no checkbox o programa corre bem mas no caso de não o fazer recebo mensagem de erro. Achava eu que no caso de não se clicar na checkbox que o seu valor seria 0, só passaria a 1 se fosse seleccionada. Pelos visto não :wallbash:

Recebo esta resposta que está relacionada com a checkbox.

"Notice: Undefined index: fairw1 in C:\wamp\www\golf_stats\gravarresultado.php on line 38 "Será que me podem ajudar?

não vejo nenhuma parte do código que apresentast que esteja a receber as variáveis que á partida deves ter enviado por post:

mas supondo que o estás a fazer e simplesmente não apresentast.

no caso da check box retira o value=1, não tenho certeza mas penso que teres o value não faz diferença porque o valor que envia no caso de estar seleccionada é on e não 1 ou 0.

então para receberes a variável e ver se foi seleccionada ou não faz o seguinte:

if($_POST['Fairw1']=="on"){
echo "check box seleccionada";
}else{
echo "check box não seleccionada";
}

quanto aos input's text supondo que estás a receber as variáveis de uma forma similar a esta:

for($i=0; $i<18; $i++){
$var="res".$i;
$res[$i]=$POST['$var'];
}

podes incluir logo no for anterior uma verificação se foi introduzido algum valor ou podes criar mais um for ou while ou o que preferires para fazer a verificação, para isso podes utilizar algo do genero:

if(($_POST['res[$i]']!="")&&($_POST['res[$i]']!=NULL)){
echo "texto preenchido";
}else{
echo "não preencheu o texto";
}

provavelmente não é a melhor forma de o fazeres mas funciona, não sou especialista trabalho nisto a pouco tempo ainda estou a aprender mas sei que isto funciona.

outra coisa, pela experiencia que tenho o isset apenas verifica se a variável está a ser enviada ou não e como estás a usar uma form a variável vai sempre ser enviada, no caso de não ser seleccionada ou no caso dos text's nao ter nada escrito envia a variável na mesma mas sem nada mas o isset assume como variável activa e no caso não te serve de nada, tens mesmo de verificar o conteudo...

desculpa se estiver a dizer alguma calinada de programação mas pelo menos quando tentei usar o isset com as forms não me servia de nada...

espero que tenha sido util

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.