Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

juniordocpd

Caregamento e validação de checkbox com AJAX e PHP

Recommended Posts

I aí galera do fórum, tudo bem aí com todo mundo?!

Estou com um problema e gostaria da ajuda de vocês.

Estou construindo um formulário onde o usuário deve especificar um curso de interesse para uma faculdade e neste curso, quais são as disciplinas que mais lhe interessam.

Então, criei um select para o curso e a medida que o cara seleciona um curso, eu recarrego uma div, chamada Disciplinas, através do DojoToolKit, e mostro as disciplinas cadastradas no MySQL para aquele curso.

 

O problema depois é com a validação que devo fazer. Estou validando por php, do lado do servidor. E minha função de validação é a seguinte:

 

function validarArray($ArrayEntrada) {     foreach ( $ArrayEntrada as $campo => $valor) {          return true;     }		      return false;}

e chamo a função dessa forma:

 

if( isset($_POST["disciplina"]) ){    if (validarArray($_POST["disciplina"])) {        echo("Foi selecionada ao menos uma disciplina.");    } else {        echo("Não foi selecionada nenhuma disciplina.");    }}

Mas ele só faz essa validação a primeira vez que eu dou "submit" no formulário. Após a primeira vez, ele não faz mais e só dá como inválida a validação, mesmo selecionando, uma, algumas ou todas as disciplinas.

Conversei com algumas pessoas sobre isso e me disseram que poderia ser um problema do ajax mesmo.

 

Gostaria de saber se alguém pode me ajudar, ou se alguém já teve um problema semelhante a esse. Estou empacado nisso a algum tempo já. Queria saber onde é que eu estou errando. :unsure:

 

Desde já agradeço a atenção de todos. Muito Obrigado!

 

Atenciosamente,

 

Júnior http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta assim:

 

if( isset($_POST["disciplina"]) ){	if (validarArray($_POST["disciplina"]) == TRUE) {	    echo("Foi selecionada ao menos uma disciplina.");	} else {		echo("Não foi selecionada nenhuma disciplina.");	}}

Compartilhar este post


Link para o post
Compartilhar em outros sites

David Ramires...

Obrigado pela dica. Mas o problema não é esse o problema. Deixa eu tentar explicar o que acontece.

Utilizando o comando de validação do meu jeito ou do jeito que você disse, ele trata a primeira vez. Ou seja, a variável $_POST["disciplina"], existe, porque eu acabei de submeter o formulário. Isso a primeira vez que eu abro a página. Depois de submeter uma vez, se eu tento submeter de novo, daí ele não passa pela validação, não retorna nem true e nem false, e a variável $_POST["disciplina"] não existe.

 

Se eu digito no fonte: echo($_POST["disciplina"]), quando abro a página pela primeira vez e clico em submit, aparece a mensagem:

"Array"

 

Depois, de submeter uma vez, se eu tento submeter de novo, daí não aparece nada:

""

 

OU seja, a variável não existe.

Como eu disse, eu estou fazendo o carregamento dessas disciplinas em um DIV que está vazia.

O carregamento é feito por ajax, utilizando o DOJO TOOL KIT. Então eu acho que esse é o problema, por ser por ajax, e consultando o código fonte, não aparece essa parte do código. Mas com certeza deve ter uma forma de pegar, mesmo utilizando por ajax. Mas não sei o que eu estou fazendo de errado.

 

Alguém saberia aí como me ajudar?! É o ajax mesmo que está dando o problema?

 

O que o ajax faz é, baseado em uma variável minha, ele chama uma outra página PHP que faz o acesso ao banco e monta os checkBox e carrega na minha div.

 

Fico no aguardo aí pessoal,

 

Mas agradeço antecipadamente.

 

MUITO OBRIGADO AÌ... Valeu memso David Ramires

 

Falow pessoal!

 

 

.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.