Guest --Marco -- Postado Janeiro 26, 2008 Denunciar Share Postado Janeiro 26, 2008 Olá a todos.Tenho uma pagina onde existe uma tabela com alguns campos.(PLU, PLU interno, Descrição, Tipo de embalagem, Quantidade).Só que estou tendo dificuldades de salvar esses valores.A ideia é usar o checkbox para selecionar o que eu quero...alterar e salvar.Segue o códigoif(isset($_POST['pesquisar'])){ $pg_db = pg_connect("host=postgresql01.cotaki.com.br dbname=cotaki1_2 port=5432 user=cotaki1_2 password=e9c3a0f7b1")or die("Conexão falhou."); switch($_POST['campo']){ case 1: $query=pg_query($pg_db,"select \"MixGlobal\".\"CodigoPlu\", \"TabelaEans\".\"CodigoEan\" , \"MixGlobal\".\"DescricaoPlu\" from cotaki.\"MixGlobal\" inner join cotaki.\"TabelaEans\" on cotaki.\"TabelaEans\".\"CodigoPlu\" = cotaki.\"MixGlobal\".\"CodigoPlu\" where \"MixGlobal\".\"CodigoPlu\" like '".strtoupper($_POST['dados'])."%'" ); break; case 2: $query=pg_query($pg_db,"select \"MixGlobal\".\"CodigoPlu\", \"TabelaEans\".\"CodigoEan\" , \"MixGlobal\".\"DescricaoPlu\" from cotaki.\"MixGlobal\" inner join cotaki.\"TabelaEans\" on cotaki.\"TabelaEans\".\"CodigoPlu\" = cotaki.\"MixGlobal\".\"CodigoPlu\" where \"MixGlobal\".\"DescricaoPlu\" like '".strtoupper($_POST['dados'])."%'" ); break; case 3: $query=pg_query($pg_db,"select \"MixGlobal\".\"CodigoPlu\", \"TabelaEans\".\"CodigoEan\" , \"MixGlobal\".\"DescricaoPlu\" from cotaki.\"MixGlobal\" inner join cotaki.\"TabelaEans\" on cotaki.\"TabelaEans\".\"CodigoPlu\" = cotaki.\"MixGlobal\".\"CodigoPlu\" where \"TabelaEans\".\"CodigoEan\" like '".strtoupper($_POST['dados'])."%'" ); break; } $linhas=pg_num_rows($query); if($linhas>0){ echo"<table width=\"534\" border=\"1\"> <tr> <td></td> <td align=\"center\">Código Plu</td> <td align=\"center\">Plu Interno</td> <td align=\"center\">Descrição</td> <td align=\"center\">Tipo Embalagem</td> <td align=\"center\">Qtd por embalagem</td> </tr>"; while($result=pg_fetch_assoc($query)){ echo" <form action=\"?q=cadastro_mix\" name=\"insere_mix\" method=\"post\"> <tr> <td><input type=\"checkbox\" name=\"select[]\" value=\"".$result['CodigoPlu']."\"></td> <td align=\"center\">".$result['CodigoPlu']."</td> <td><input type=\"text\" maxlength=\"8\" size=\"8\" name=\"plu_interno[]\"></td> <td align=\"center\">".$result['DescricaoPlu']."</td> <td align=\"center\"><select name=\"emba[]\"> <option value=\"1\">KG</option> <option value=\"2\">Cx</option> <option value=\"3\">Un</option> <option value=\"4\">Fardo</option> </select> </td> <td align=\"center\"><input type=\"text\" maxlength=\"5\" name=\"qtd_embalagem[]\" size=\"5\"></td>"; } echo"</tr> </table> <div align=\"center\"> <input type=\"submit\" name=\"Grava\" value=\"Gravar\"> </div></form> "; } else{ echo"<script> window.alert(\"Nenhum Registro encontrado\"); window.history.back(-1); </script>"; } pg_free_result($query); pg_close($pg_db); } if(isset($_POST['Grava'])){ $a=0; $i=0; $d=sizeof($_POST['select']); while($a<$d){ foreach($_POST['emba'] as $embalagem){ echo "<br>"; $i++; } echo "".$_POST['select'][$a]." e $embalagem";///nesse while eu travei... $a++; } } ?>Se quiserem visualizar a pagina http://www.cotaki.com.br/drupal/?q=cadastro_mix.Selecionando a opcao de pesquisa descrição...digite "A" que os produtos vão aparecer.Agradeço desde já a atenção. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Janeiro 26, 2008 Denunciar Share Postado Janeiro 26, 2008 Em primeiro lugar, você está criando várias vezes o cabaçelho form, o que pode trazer problemas em alguns navegados:<form action="?q=cadastro_mix" name="insere_mix" method="post"> <tr> <td><input type="checkbox" name="select[]" value="5"></td> <td align="center">5</td> <td><input type="text" maxlength="8" size="8" name="plu_interno[]"></td> <td align="center">ARROZ PATEKO 5KG TP1</td> <td align="center"><select name="emba[]"> <option value="1">KG</option> <option value="2">Cx</option> <option value="3">Un</option> <option value="4">Fardo</option> </select> </td> <td align="center"><input type="text" maxlength="5" name="qtd_embalagem[]" size="5"></td> <form action="?q=cadastro_mix" name="insere_mix" method="post"> <tr> <td><input type="checkbox" name="select[]" value="6"></td> <td align="center">6</td> <td><input type="text" maxlength="8" size="8" name="plu_interno[]"></td> <td align="center">ARROZ PATEKO 5KG TP2</td> <td align="center"><select name="emba[]"> <option value="1">KG</option> <option value="2">Cx</option> <option value="3">Un</option> <option value="4">Fardo</option> </select> </td> <td align="center"><input type="text" maxlength="5" name="qtd_embalagem[]" size="5"></td>Em segundo lugar, você vai ter que mudar a parte dos select e dos input text, pois os checkboxs só existem quando são selecionados, por outro lado, mesmo que você não escreva nada em um input text ou não selecione nada em um select, eles vão existir no action do formulário, então eles terão que seguir algo do gênero (adpatado do código acima.. <tr> <td><input type="checkbox" name="select[]" value="6"></td> <td align="center">6</td> <td><input type="text" maxlength="8" size="8" name="plu_interno[6]"></td> <td align="center">ARROZ PATEKO 5KG TP2</td> <td align="center"><select name="emba[6]"> <option value="1">KG</option> <option value="2">Cx</option> <option value="3">Un</option> <option value="4">Fardo</option> </select> </td> <td align="center"><input type="text" maxlength="5" name="qtd_embalagem[6]" size="5"></td>Note que ali eu atribui os índices pros futuros array igual ao valor que o checkbox vai receber, assim você vai conseguir ligar tudo, com isso você nem precisa de sizeof e etc, basta por o $_POST['select'] no foreach, assim você já sabe os checkboxs que foram selecionados e já tem o índice dos outros arrays a que pertence a aquele checkbox... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --Marco -- Postado Janeiro 26, 2008 Denunciar Share Postado Janeiro 26, 2008 Oi ESerra.Eu adaptei da maneira que voce mostrou. (se eu entendi bem ..é claro)if($linhas>0){ echo"<table width=\"534\" border=\"1\"> <tr> <td></td> <td align=\"center\">Código Plu</td> <td align=\"center\">Plu Interno</td> <td align=\"center\">Descrição</td> <td align=\"center\">Tipo Embalagem</td> <td align=\"center\">Qtd por embalagem</td> </tr>"; while($result=pg_fetch_assoc($query)){ echo" <form action=\"?q=cadastro_mix\" name=\"insere_mix\" method=\"post\"> <tr> <td><input type=\"checkbox\" name=\"select[]\" value=\"".$result['CodigoPlu']."\"></td> <td align=\"center\">".$result['CodigoPlu']."</td> <td><input type=\"text\" maxlength=\"8\" size=\"8\" name=\"plu_interno[".$result['CodigoPlu']."]\"></td> <td align=\"center\">".$result['DescricaoPlu']."</td> <td align=\"center\"><select name=\"emba[".$result['CodigoPlu']."]\"> <option value=\"1\">KG</option> <option value=\"2\">Cx</option> <option value=\"3\">Un</option> <option value=\"4\">Fardo</option> </select> </td> <td align=\"center\"><input type=\"text\" maxlength=\"5\" name=\"qtd_embalagem[]\" size=\"5\"></td>"; } echo"</tr> </table> <div align=\"center\"> <input type=\"submit\" name=\"Grava\" value=\"Gravar\"> </div></form> "; } else{ echo"<script> window.alert(\"Nenhum Registro encontrado\"); window.history.back(-1); </script>"; } pg_free_result($query); pg_close($pg_db); } if(isset($_POST['Grava'])){ $i=0; foreach($_POST['select'] as $selecionado){ foreach($_POST['emba'] as $embalagem){ $i++; } echo $embalagem; $i++; }Mas não entendi como posso referenicar os outrs arrays ao checkbox selecinado...Tentei usando o foreach da maneira acima ...mas não deu certo.O que está errado.? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Janeiro 26, 2008 Denunciar Share Postado Janeiro 26, 2008 Abaixo um exemplo pra você entender a lógica...<?php if(!isset($_POST['Grava'])){ echo "<form action=\"?q=cadastro_mix\" name=\"insere_mix\" method=\"post\">Selecione os checkboxes e digite valores<BR><BR>"; for($i=1;$i<=5;$i++){ echo "Valor $i: <input type=\"checkbox\" name=\"select[]\" value=\"$i\"> - <input type=\"text\" maxlength=\"8\" size=\"8\" name=\"plu_interno[$i]\"><BR><BR>"; } echo "<input type=\"submit\" name=\"Grava\" value=\"Gravar\"></form>"; }else{ echo "Só vão aparecer os checkboxes selecionados...<BR><BR>"; foreach($_POST['select'] as $indice){ echo $indice.' - '.$_POST['plu_interno']["$indice"].'<BR>'; } } ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --Marco -- Postado Janeiro 27, 2008 Denunciar Share Postado Janeiro 27, 2008 ESerra, só tenho a te agradecer. Agora entendi como se faz.Muito obrigado. Estava mesmo precisando terminar essa parte.Um abraço e mais uma vez muito obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest --Marco --
Olá a todos.
Tenho uma pagina onde existe uma tabela com alguns campos.
(PLU, PLU interno, Descrição, Tipo de embalagem, Quantidade).
Só que estou tendo dificuldades de salvar esses valores.
A ideia é usar o checkbox para selecionar o que eu quero...alterar e salvar.
Segue o código
Se quiserem visualizar a pagina http://www.cotaki.com.br/drupal/?q=cadastro_mix.
Selecionando a opcao de pesquisa descrição...digite "A" que os produtos vão aparecer.
Agradeço desde já a atenção.
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.