Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 16

Problema com LOOP

17-02-2011 10:51

Olá galéra, estou com um problemão aqui!
Tenho um formulário que tem N campos definidos dinamicamente, e de N tipos diferentes....

Explicando, tenho um formulário que o cliente defini por exemplo que tipo de pergunta vai ser... textbox, radio, listmenu... etc

aí eu tenho isso tudo numa página só... utilizei até então o seguinte script:

$total_objetos = count($tipo_objeto); //SERVE PARA PERMITIR QUE FAÇA O FOR DENTRO DO FOR APENAS UMA VEZ. $passou = 1; for($i=0;$i<$total_objetos;$i++){ //TEXTBOX $total_objetos2 = count($ds_resposta_textbox); if($tipo_objeto[$i] == 1 and $passou==1){ for($i2=0;$i2<$total_objetos2;$i2++){ if($ds_resposta_textbox[$i2] == '') { echo"DELETE FROM tb_resposta WHERE (id_questionario, id_questao, id_email, id_opcao, ds_resposta) VALUES ('$qid', '$id_questao_textbox2[$i2]', '$id_cliente', '$id_opcao_textbox[$i2]','$ds_resposta_textbox[$i2]')<br>"; } echo"Questão TEXTBOX:<br>"; echo"INSERT INTO tb_resposta (id_questionario, id_questao, id_email, id_opcao, ds_resposta) VALUES ('$qid', '$id_questao_textbox2[$i2]', '$id_cliente', '$id_opcao_textbox[$i2]','$ds_resposta_textbox[$i2]')<br>"; } } $passou++; }

Isso não ta dando muito certo, porque o loop é feito pro ds_resposta_textbox... então quando eu coloco o $i2 nos outros, da merda... como fazer com que os dados venham certos?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17582
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Problema com LOOP

17-02-2011 11:09

Tem como dar um print na página que os campos para entender melhor?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 16

Problema com LOOP

17-02-2011 11:17

Imagem
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17582
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Problema com LOOP

17-02-2011 11:23

Esse sistema me parece que é baseado no valor que vem pelos campos. Não seria melhor você usar como base se o campo vem com valor ou não?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 16

Problema com LOOP

17-02-2011 11:25

que seja, mas você acha que teria então alguma forma por exemplo... em um radiobox... no value eu teria que passar a id daquela opções selecionada, a id da pergunta e a id do grupo de perguntas, isso tudo sendo arrays, pq pode ter caso ter ter outro radiobox dentro desse formulário.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17582
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Problema com LOOP

17-02-2011 13:01

Veja se esse exemplo dá uma ideia

<?php if(isset($_POST['radio1'])) { foreach($_POST['radio1'] AS $valor) { echo $valor; } } ?> <form action="" method="post"> <input type="radio" name="radio1[]" value="valor 1"> <input type="radio" name="radio1[]" value="valor 2"> <input type="submit"> </form>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 16

Problema com LOOP

17-02-2011 13:09

Certo, isso é tranquilo... e como pego o valor das outras arrays..

Exemplo...

respondeu radio 1

insert > valor do radio 1, valor da questão que pertecen o radio 1... q tbm é uma array.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17582
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Problema com LOOP

17-02-2011 13:30

Como não sei a relação que criou para os campos, deixo esse exemplo com valores globais, que são alimentados de acordo com o que marcou no input radio.

<?php $op1 = ""; $op2 = ""; if(isset($_POST)) { if(isset($_POST['radio1'])) { foreach($_POST['radio1'] AS $valor) { $op1.=$valor; } } if(isset($_POST['radio2'])) { foreach($_POST['radio2'] AS $valor) { $op2.=$valor; } } echo "$op1 e $op2"; } ?> <form action="" method="post"> <input type="radio" name="radio1[]" value="valor 1"> <input type="radio" name="radio1[]" value="valor 2"> <br /> <input type="radio" name="radio2[]" value="valor 11"> <input type="radio" name="radio2[]" value="valor 22"> <br /> <input type="submit"> </form>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 16

Problema com LOOP

17-02-2011 13:30

Faço um loop vericiando quantas questões existem.
Faço um if verificando qual é o tipo de objeto que está sendo recebido

Caso seja um Textbox
Faço um count para pegar quantas textboxs existem

Faço um for para repetir o insert pela quantidade de vezes que existir txtbox com resposta.

COMANDO DE INSERT > inserir em ... id_questao[Como pegar o indice?], id_opcao[Como pegar o indice?], ds_resposta[$indice do for]

Fim do for

Fim do if
0
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 16

Problema com LOOP

17-02-2011 16:10

RESOLVIDO, depois posto o código.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17582
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Problema com LOOP

17-02-2011 16:20

Boa. :smile:
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Bing [Bot]