sdvivi 0 Denunciar post Postado Outubro 23, 2008 Olá... Por que aparece esse erro: Warning: Invalid argument supplied for foreach() in c:\apache\htdocs\humanos\admin\editarproc.php on line 406 referente a essa passagem do código. Funciona porém dá esse erro! foreach ($_POST["q1"] as $q1) { $insere = mysql_query("INSERT into sindicados(codigo, portaria, anoid, q1) VALUES ('$max','$portaria','$anoid', '$q1')") or die(mysql_error()); } Valeu!!obrigada. Compartilhar este post Link para o post Compartilhar em outros sites
RTDN CONSULTORIA 0 Denunciar post Postado Outubro 23, 2008 po cara o seu $_POST['q1'] pode estar retornando vazio ou sem vários valores se voce esta pegando ele de um checkbox verifique se esta correto. ex: <input type=checkbox name=q1[] value='teste' /> OS COLCHETES [] São essenciais nesses casos... Vlw Compartilhar este post Link para o post Compartilhar em outros sites
Kimura 0 Denunciar post Postado Outubro 23, 2008 Olá Vivi, Verifique se você está passando algum valor ao método Post. Ex.: <?php echo '<pre>'; print_r($_POST['q1']); echo '</pre>'; ?> Veja se vai exibir algo. Sucesso. Compartilhar este post Link para o post Compartilhar em outros sites
sdvivi 0 Denunciar post Postado Outubro 23, 2008 Este q[], é gerado através de uma fç em javascript... Tipo assim, preciso gerar vários inputs, de acordo com a necessidade do cliente Uso <script language="JavaScript"> var mainDivName = 'eventDates'; function addEvent() { var ni = document.getElementById(mainDivName); var numi = document.getElementById('theValue'); var num = (document.getElementById("theValue").value -1)+ 2; numi.value = num; var divIdName = "eventDate"+num+"Div"; var newdiv = document.createElement('div'); newdiv.setAttribute("id",divIdName); newdiv.innerHTML = "<table><tr><td></td><b</b><td width=80 ><b>"+num+". Sindicado:</b></td><td width=100[b]><input type=\"text\" name=\"q1[]\" size=\"50\" onKeyUp=\"checkList(this,arvore)\" id=\"textbox["+num+"]\"> [/b]</td><td><a href=\"#\" onclick=\"removeEvent(\'"+divIdName+"\')\">Remover</a></td> </table> "; // AQUI SÃO GERADOS OS INPUTS NECESSÁRIOS ni.appendChild(newdiv); } function removeEvent(divNum) { var d = document.getElementById(mainDivName); var olddiv = document.getElementById(divNum); d.removeChild(olddiv); } </script> O erro se dá na inserção no BD, insere porém aparece o erro!!! Compartilhar este post Link para o post Compartilhar em outros sites
RTDN CONSULTORIA 0 Denunciar post Postado Outubro 23, 2008 Então, esse erro é concerteza o metodo $_POST vindo vazio para o foreach.... pelo visto o name do seu codigo esta correto verifique se o VALUE esta com conteudo tb abraços Compartilhar este post Link para o post Compartilhar em outros sites
sdvivi 0 Denunciar post Postado Outubro 23, 2008 Gente acho que consegui resolve o problema... Se puderem me ajudar com outra coisinha, vou agradecer... é referente ao mesmo assunto. É o seguinte, este campo esta em um form. Assim insiro nomes no BD de acordo com a necessidade do cliente, só que esse form pode ser editado, assim o campo sindicado pode ter dados ou não. Se caso tiver dados retorna o mesmo senão dá a opção de depois inserir os dados... porém é ai que dá dando erro... Olhem... <td><div align=\"right\"><b>Sindicado(s):</b></div></td> "; - SE CASO TEM DADOS INSERIDOS NA BD, MOSTRA OS MESMOS FAÇO O SELECT---- $z = "SELECT c.*, s.codigo, s.anoid, s.q1 FROM tb_cadastroprimeira c, sindicados s WHERE s.codigo LIKE '$codigo' AND s.anoid LIKE '$anoid' AND s.codigo = c.codigo AND s.anoid = c.anoid"; $y = mysql_query($z); while($v = mysql_fetch_array($y)) { $q1 = $v["q1"]; if ($q1!=''){ COLOCO O TESTE AKI!! SE ESTIVER PREENCHIDO ESCREVE O VALOR DE Q1 echo " <td colspan=\"5\" valign=\"top\"><div align=\"justify\"><font size=\"1\">$q1</font></div></td> "; } else { SENÃO DAREIA A OPÇÃO DE INSERIR echo " <td colspan=\"5\"> <input type=\"hidden\" value=\"0\" id=\"theValue\"> <p><a href=\"java script:;\" onClick=\"addEvent();\" class=campos_formulario><b>Adicionar Campos</b></a> </P> <div id=\"eventDates\"> </div>"; MINHA DÚVIDA É AKI, POIS CONSIGO VIZUALIZAR O CAMPO PARA INSERIR OS DADOS, MAS NÃO ESTOU CONSEGUINDO INSERIR.. TENTEI ASSIM E NÃO DEU CERTO foreach ($_POST["q1"] as $q1) { $insere = mysql_query("INSERT into sindicados(codigo, portaria, anoid, q1) VALUES ('$max','$portaria','$anoid', '$q1')") or die(mysql_error()); } } } O QUE VCS ACHAM??!!! Compartilhar este post Link para o post Compartilhar em outros sites
RTDN CONSULTORIA 0 Denunciar post Postado Outubro 23, 2008 O negócio não é o que vocês acham.... com isso você conseguiu inserir?? se sim pronto PROBLEMA RESOLVIDO... Abraços Compartilhar este post Link para o post Compartilhar em outros sites
sdvivi 0 Denunciar post Postado Outubro 23, 2008 O negócio não é o que vocês acham.... com isso você conseguiu inserir?? se sim pronto PROBLEMA RESOLVIDO... Abraços Coloquei "acho", pois não fiz todos os testes necessários... E diante disso, surgiu outra dúvida referente ao mesmo assunto... ou seja mesmo tópico FOREACH, na inserção dos dados, por isso prolonguei o assunto. Mas obrigada pela atenção e sutileza. Att. Compartilhar este post Link para o post Compartilhar em outros sites
RTDN CONSULTORIA 0 Denunciar post Postado Outubro 23, 2008 O negócio não é o que vocês acham.... com isso você conseguiu inserir?? se sim pronto PROBLEMA RESOLVIDO... Abraços Coloquei "acho", pois não fiz todos os testes necessários... E diante disso, surgiu outra dúvida referente ao mesmo assunto... ou seja mesmo tópico FOREACH, na inserção dos dados, por isso prolonguei o assunto. Mas obrigada pela atenção e sutileza. Att. Não me entenda mal... eu tinha ficado feliz por você ter consiguido..... Desculpa se me expressei meio rude... Qual seria sua outra duvida para ver se eu posso te ajudar.... Desculpa a forma de falar... Compartilhar este post Link para o post Compartilhar em outros sites
sdvivi 0 Denunciar post Postado Outubro 23, 2008 O negócio não é o que vocês acham.... com isso você conseguiu inserir?? se sim pronto PROBLEMA RESOLVIDO... Abraços Coloquei "acho", pois não fiz todos os testes necessários... E diante disso, surgiu outra dúvida referente ao mesmo assunto... ou seja mesmo tópico FOREACH, na inserção dos dados, por isso prolonguei o assunto. Mas obrigada pela atenção e sutileza. Att. Não me entenda mal... eu tinha ficado feliz por você ter consiguido..... Desculpa se me expressei meio rude... Qual seria sua outra duvida para ver se eu posso te ajudar.... Desculpa a forma de falar... No Problem... tudo tranquilo.... Mas a principio consegui resolver o problema sim... Só que surgiu um outro probleminha sim... É como relatei acima... Os nomes são inseridos no BD de acordo com a necessidade do cliente, ou seja, pode ser 01, 02, 03 ou mais, só que esse form pode ser editado, assim o campo sindicado pode ter dados ou não, ou seja o cliente pode cadastrar os dados e deixar para cadastrar os sindicados depois, assim coloquei um IF realizando um teste depois do SELECT... Olha... <td><div align=\"right\"><b>Sindicado(s):</b></div></td> "; - SE CASO TEM DADOS INSERIDOS NA BD, MOSTRA OS MESMOS FAÇO O SELECT---- $z = "SELECT c.*, s.codigo, s.anoid, s.q1 FROM tb_cadastroprimeira c, sindicados s WHERE s.codigo LIKE '$codigo' AND s.anoid LIKE '$anoid' AND s.codigo = c.codigo AND s.anoid = c.anoid"; $y = mysql_query($z); while($v = mysql_fetch_array($y)) { $q1 = $v["q1"]; if ($q1!=''){ COLOCO O TESTE AKI!! SE ESTIVER PREENCHIDO ESCREVE O VALOR DE Q1 echo " <td colspan=\"5\" valign=\"top\"><div align=\"justify\"><font size=\"1\">$q1</font></div></td> "; } else { SENÃO É DADA A OPÇÃO DE INSERIR echo " <td colspan=\"5\"> <input type=\"hidden\" value=\"0\" id=\"theValue\"> <p><a href=\"java script:;\" onClick=\"addEvent();\" class=campos_formulario><b>Adicionar Campos</b></a> </P> <div id=\"eventDates\"> </div>"; MINHA DÚVIDA É AKI, POIS CONSIGO VIZUALIZAR O CAMPO PARA INSERIR OS DADOS, MAS NÃO ESTOU CONSEGUINDO INSERIR, OU SEJA GERO OS DADOS MAS NA HORA DE GRAVAR OS DADOS, NÃO ESTA DANDO CERTO.. TENTEI ASSIM foreach ($_POST["q1"] as $q1) { $insere = mysql_query("INSERT into sindicados(codigo, portaria, anoid, q1) VALUES ('$max','$portaria','$anoid', '$q1')") or die(mysql_error()); } } }O QUE você ACHA??!!! Compartilhar este post Link para o post Compartilhar em outros sites
RTDN CONSULTORIA 0 Denunciar post Postado Outubro 23, 2008 O que aquele JAVASCRIPT esta fazendo?? porque voce não coloca um campo normal type text para o usuário inserir o dado ou o sindicado e ao lado um botao cadastrar que ai voce atualiza apenas aquele campo.... Compartilhar este post Link para o post Compartilhar em outros sites
sdvivi 0 Denunciar post Postado Outubro 23, 2008 O que aquele JAVASCRIPT esta fazendo?? porque voce não coloca um campo normal type text para o usuário inserir o dado ou o sindicado e ao lado um botao cadastrar que ai voce atualiza apenas aquele campo.... <a href=\"java script:;\" onClick=\"addEvent();\" class=campos_formulario><b>Adicionar Campos</b></a> </P> <div id=\"eventDates\"> Esse javascript, esta gerando os inputs para inserção dos dados, porque uso esse js, pois não se tem a certeza de quantos nomes serão inseridos, pode ser 01, 02, 03....., por isso estou tento probleminhas. Mas até aki está funcionando... gerar os campos blza... A questão é inserir esse dados pois este tratamento é feito na edição do form e não no cadastramento principal... entendeu? Tentei fazer da forma que te mostrei , colocando foreach ($_POST["q1"] as $q1) { $insere = mysql_query("INSERT into sindicados(codigo, portaria, anoid, q1) VALUES ('$max','$portaria','$anoid', '$q1')") or die(mysql_error()); } este codigo abaixo do div, ou seja a idéia é... cadastrou o form, na edição há sindicados? escreve esses sindicados, senão dá opção de inserir e gravar no bd... entendeu? Compartilhar este post Link para o post Compartilhar em outros sites
RTDN CONSULTORIA 0 Denunciar post Postado Outubro 23, 2008 Tipo agora eu entendi +- oq você qr fzr pelo visto teu codigo não esta errado Faz o seguinte ve se seu SQL esta correto Por exempli eu vi o CODIGO com aspas é isso mesmo?? O codigo não eh numerico n??? Compartilhar este post Link para o post Compartilhar em outros sites
sdvivi 0 Denunciar post Postado Outubro 23, 2008 Tipo agora eu entendi +- oq você qr fzr pelo visto teu codigo não esta errado Faz o seguinte ve se seu SQL esta correto Por exempli eu vi o CODIGO com aspas é isso mesmo?? O codigo não eh numerico n??? Não entendi... numerico??!! As aspas no codigo é que ele esta dentro de um "echo " do php.. É justamente esse php que estou em duvida Compartilhar este post Link para o post Compartilhar em outros sites
RTDN CONSULTORIA 0 Denunciar post Postado Outubro 23, 2008 Tipo agora eu entendi +- oq você qr fzr pelo visto teu codigo não esta errado Faz o seguinte ve se seu SQL esta correto Por exempli eu vi o CODIGO com aspas é isso mesmo?? O codigo não eh numerico n??? Não entendi... numerico??!! As aspas no codigo é que ele esta dentro de um "echo " do php.. É justamente esse php que estou em duvida Desculpa não soube me expressar olhe esse seu codigo: foreach ($_POST["q1"] as $q1) { $insere = mysql_query("INSERT into sindicados(codigo, portaria, anoid, q1) VALUES ('$max','$portaria','$anoid', '$q1')") or die(mysql_error()); } Entaop se no banco o campo CODIGO for numerico Voce não pode inderir o valor '$max' com aspas deve inserir $max As vezes o erro é bobeira... verifique essas coisas.... Banco e SQL Compartilhar este post Link para o post Compartilhar em outros sites
desdobrador! 0 Denunciar post Postado Outubro 23, 2008 Olá... Por que aparece esse erro: Warning: Invalid argument supplied for foreach() in c:\apache\htdocs\humanos\admin\editarproc.php on line 406 referente a essa passagem do código. Funciona porém dá esse erro! foreach ($_POST["q1"] as $q1) { $insere = mysql_query("INSERT into sindicados(codigo, portaria, anoid, q1) VALUES ('$max','$portaria','$anoid', '$q1')") or die(mysql_error()); } Valeu!! obrigada. $_POST["q1"] é um vetor? O erro está dizendo que é um argumento inválido, então, se o $_POST["q1"] não for um vetor, utilize o for ou o while vlww!! Compartilhar este post Link para o post Compartilhar em outros sites