felini 0 Denunciar post Postado Agosto 30, 2010 Fala galera! Estou fazendo um sistema para a empresa em que trabalho porém como o pessoal precisa pra "ontem" estou fazendo as pressas e tipo, não tenho banco de dados nem nada, isso eu vou criar depois com a versão 2.0 orientado a objeto e tudo mais. Enfim, o sistema é um cadastro de orçamento. No caso o fornecedor deve acessar este formulário e preencher o valor que ele nos cotaria o produto dele. Porém, existem produtos COM fabricantes e SEM fabricantes, exemplo, só queremos cotar refrigerante Coca-Cola e Pepsi, então vai ter um checkbox para o fornecedor marcar qual ele quer nos vender por aquele valor. Segue abaixo o formulário .html de TESTE <table id="produtos" width="100%" cellspacing="0" cellpadding="0" align="center"> <tr> <td class='ini'>código</td> <td class='ini' width="350">produto</td> <td class='ini'>unidade</td> <td class='ini'>preço</td> <td class='ini'>fabricante</td> </tr> <tr> <td>4323</td> <td>AÇUCAR CONFEITEIRO</td> <td>KG</td> <td><input type="text" size="8" class="precoProduto" name="val[4323][ACUCAR CONFEITEIRO][KG]" /></td> <td> </td> </tr> <tr> <td>3233</td> <td>AÇUCAR CRISTAL</td> <td>KG</td> <td><input type="text" size="8" class="precoProduto" name="val[3233][ACUCAR CRISTAL][KG]" /></td> <td> </td> </tr> <tr> <td>4411</td> <td>AÇUCAR MASCAVO</td> <td>KG</td> <td><input type="text" size="8" class="precoProduto" name="val[4411][ACUCAR MASCAVO][KG]" /></td> <td><input type="checkbox" name="marca[1]" value="Sadia" />Sadia<br /> <input type="checkbox" name="marca[1]" value="Perdigao" />Perdigao<br /> </td> </tr> <tr> <td>23421</td> <td>AÇUCAR MASCAVOIII</td> <td>KG</td> <td><input type="text" size="8" class="precoProduto" name="val[23421][AÇUCAR MASCAVO III][KG]" /></td> <td><input type="checkbox" name="marca[2]" value="Teste 1" />Teste 1<br /> <input type="checkbox" name="marca[2]" value="Teste 2" />Teste 2<br /> </td> </tr> <tr> <td>44876</td> <td>AÇUCAR PRETO</td> <td>KG</td> <td><input type="text" size="8" class="precoProduto" name="val[44876][ACUCAR PRETO][KG]" /></td> <td><input type="checkbox" name="marca[3]" value="Teste 3" />Teste 3<br /> <input type="checkbox" name="marca[3]" value="teste 5" />Teste 5<br /> </td> </tr> </table> Enfim, veja que o name é val[iD][DESCRICAO][uNIDADE]. Estou conseguindo pegar e tratar estes dados certinho, inclusive o valor que o fornecedor preencheu. O problema está em resgatar o CHECKBOX para determinado produto. Segue abaixo o PHP que resgata estes dados com o foreach. foreach ($_REQUEST["val"] AS $id_pro => $nome_pro) { foreach ($nome_pro AS $produto => $valor_pro) { foreach ($valor_pro AS $unidade => $preco) { if (!empty($preco)) { foreach($_REQUEST["marca"] AS $marca) { echo $id_pro . " - " . $produto . " - " . $unidade . " - " . $preco . " - " . $marca . "<br>"; //echo $id_pro . " - " . $produto . " - " . $unidade . " - " . $preco . "<br>"; } } } } } Preciso que, quando exista checkbox para determinado produto, ele resgate valor do checkbox marcado. Agradeço a quem me ajudar agora. Como preciso disso pra ontem estamos fazendo em HTML. Assim que o pessoal estiver usando isso, começo o desenvolvimento com banco de dados e relacionamentos para que eu nao passe mais por isso! :P Valeu ae! Compartilhar este post Link para o post Compartilhar em outros sites
felini 0 Denunciar post Postado Agosto 30, 2010 Fala galera, um dos problemas eu matei! Agora está associando certo. Vejam como está: Defini no HTML, um valor no campo de INPUT checkbox: <input type="checkbox" name="marca[4411][1]" value="Sadia" />Sadia<br /> <input type="checkbox" name="marca[4411][1]" value="Perdigao" />Perdigao<br /> $idFabricante = array ("4411","23421","44876"); foreach ($_REQUEST["val"] AS $id_pro => $nome_pro) { foreach ($nome_pro AS $produto => $unidadeMedida) { foreach ($unidadeMedida AS $unidade => $preco) { if (!empty($preco)) { if (in_array($id_pro,$idFabricante)) { foreach($_REQUEST["marca"] AS $marcaIdProd => $quemarca) { if ($marcaIdProd == $id_pro) { foreach ($quemarca AS $nomeMarca) { echo $marcaIdProd . " - " . $id_pro . " - " . $produto . " Fabricante " . $nomeMarca ."<br>"; } } //echo $marca . " - " . $marca2 . "<br>"; //echo $id_pro . " - " . $produto . " - " . $unidade . " - " . $preco . " - " . $marca . "<br>"; //echo $id_pro . " - " . $produto . " - " . $unidade . " - " . $preco . "<br>"; } } else { echo $id_pro . " - " . $produto . " - " . $preco ."<br>"; } } } } } Sei que está complicado, mas como a pressa é inimiga da perfeição e trabalho de porco se faz duas vezes. O problema agora é que o input é do tipo checkbox, só que ele só traz um dos resultados escolhidos, quando marca-se dois, ele trás sempre o último. Muito obrigado à todos que puderem dar dicas e ajudar! :) Compartilhar este post Link para o post Compartilhar em outros sites
_neto_ 0 Denunciar post Postado Agosto 30, 2010 Isso é por que estão com o mesmo name. O comportamento do checkbox é um pouco diferente dos outros controles, quando está desmarcado a variável POST do controle sequer é enviada ao servidor, por isso é melhor usar o isset() pra verificar se um checkbox está marcado. Como você usou um value no seu checkbox, acho que quando só um está marcado, ele envia o valor apenas do checkbox marcado, e quando estão marcados ambos, como têm o mesmo name, apenas um deles é enviado. Tente mudar isso para que os dois checkbox tenham o name diferente. Se você usasse um framework como o CakePHP, poderia fazer isso mais organizado, mesmo com pouco tempo :-P Mas como você já começou assim, boa sorte. Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Agosto 30, 2010 É cara, sem banco de dados é quase impossível. Usando um, você teria uma tabela de marcas e outra de produtos com uma coluna de referência à marca. Daí, quando fosse incluir o produto vindo do checkbox marcado você consultaria a tabela produtos e faria um JOIN para tabela de marcas. Compartilhar este post Link para o post Compartilhar em outros sites
felini 0 Denunciar post Postado Agosto 30, 2010 Fala ae! Desisti do check e usei radio. Valeu aí! :) Agora vou me reunir com a equipe pra começar o desenvolvimento de um software que faça isso dinamicamente, com importação de arquivo/usuários/produtos/grupos etc! COM certeza ficará bem mais fácil e organizado! Flwww! Resolvido! Compartilhar este post Link para o post Compartilhar em outros sites