MTavares Postado Junho 16, 2009 Denunciar Share Postado Junho 16, 2009 Prezados Colegas,estou tentando resolver um pequeno desafio, mas não estou conseguindo sozinho, por isso conto com a ajuda de vocês...Eu tenho um formulário onde o cliente poderá selecionar vários produtos com a quantidade desejada, os produtos, como a quantidade vem do banco, vejam:....<td><input type="checkbox" name="produtos[]" value=<?=$mt_produtos->product;?>"></td><td bgcolor="<?=$fundo;?>"><?=$mt_produtos->product;?></td><td bgcolor="<?=$fundo;?>"><div align="center"><select name="qtd[]"><option value="selecione">------</option><?php for($qtd = 1; $qtd < $mt_produtos->qtd_pct + 1; $qtd++){ ?><option value="<?=$qtd;?>"><?=$qtd;?></option>....... mas quando eu tento trazer o resultado, ele traz todas as quantidades e os produtos selecionados... quero que a quantidade corresponda ao produto selecionado.. segue abaixo o meu código:if($_REQUEST["submit] == "Enviar"){ $produtos = $_REQUEST["produtos"]; $quantidades = $_REQUEST["qtd"]; foreach($produtos as $produto){ foreach($quantidades as $quantidade){ if($quantidade != "selecione"){ echo $produto. " - " .$quantidade."<br>"; } } } }...Conto com o apoio de vocês...abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ARD Postado Junho 16, 2009 Denunciar Share Postado Junho 16, 2009 Mole, mole...Você só precisa realizar um foreach e acessar o valor do outro array de acordo com chave do primeiro:foreach($produtos as $key => $value) { //assim você pega somente valor maior que zero e que não é uma string if((int)$quantidades[$key] > 0) { echo "Produto:", $value," - Qtd: ",$quantidades[$key]; } }T+André Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MTavares Postado Junho 16, 2009 Autor Denunciar Share Postado Junho 16, 2009 (editado) Olá ARD,em primeiro lugar quero lhe agradecer pela sua força... estamos quase lá... usei o seu código... ele seleciona perfeitamente ... mas só quando selecionamos o primeiro produto.. ou seja.. quando seleciono o primeiro produto ele retorna a qtd certa... mas quando seleciono os outros produtos.. não retorna as qtds selecionadas dos produtos selecionados.... :wacko: eu tentei das duas fomas:<select name="qtd[]"> e <select name="qtd">.... mas nada!!! :huh: abraços Editado Junho 16, 2009 por MTavares Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 matias_rezende Postado Junho 16, 2009 Denunciar Share Postado Junho 16, 2009 Faz o seguinte... Na primeira linha da página que pega os resultados, coloca o seguinte.echo '<pre>'; print_r($_POST); echo '</pre>';Posta aqui o resultado.Carlos Eduardo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MTavares Postado Junho 16, 2009 Autor Denunciar Share Postado Junho 16, 2009 (editado) beleza Matiassegue abaixo... selecionei dois produtos, sendo que o primeiro foi com 3 qtds e o segundo 5 qtds....Array( [produtos] => Array ( [0] => SÉRAB6O61 [1] => HP Pavilion série dv3500 Entertainment Notebook PC - Visão g ) [qtd] => Array ( [0] => 3 [1] => 5 [2] => selecione ) [outros] => [submit] => Enviar)Array( [produtos] => Array ( [0] => SÉRAB6O61 [1] => HP Pavilion série dv3500 Entertainment Notebook PC - Visão g ) [qtd] => Array ( [0] => 3 [1] => 5 [2] => selecione ) [outros] => [submit] => Enviar)abaços e obrigado! Editado Junho 16, 2009 por MTavares Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 matias_rezende Postado Junho 16, 2009 Denunciar Share Postado Junho 16, 2009 Beleza... Veja que $_POST['produtos'][0] retorna o produto SÉRAB6O61 e o $_POST['qtde'][0] retorna 3 (que imagino ser a quantidade deste mesmo produto). Assim sendo...for ($x = 0; $x > count($_POST['qtde']); $x++){ $produto = $_POST['produtos'][$x]; $qtde = $_POST['qtde'][$x]; echo 'A quantidade digitada para o produto '.$produto.' foi de '.$qtde.'.</br>'; }Acho que por aqui você tem uma noção de como fazer... Qualquer coisa posta aí que a gente ajuda.Carlos Eduardo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MTavares Postado Junho 17, 2009 Autor Denunciar Share Postado Junho 17, 2009 beleza Matias,tentei fazer mas não consegui... você poderia me dar uma força?abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 matias_rezende Postado Junho 17, 2009 Denunciar Share Postado Junho 17, 2009 Copia este código que eu coloquei e executa... Veja se o que aparece é o que foi selecionado.Depois que você confirmar, te pergunto... O que exatamente você quer fazer? Gravar no banco? Salvar em session? Exibir pro usuário?Carlos Eduardo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MTavares Postado Junho 17, 2009 Autor Denunciar Share Postado Junho 17, 2009 Oi Matias... eu colei seu código, mas não me retornou resultados...fiz novamente pra imprimir na tela e veja o que apareceu:Array( [produtos] => Array ( [0] => SÉRAB6O61 [1] => HP Pavilion série dv3500 Entertainment Notebook PC - Visão g [2] => Série Multifuncional HP Color LaserJet CM1312 - modelos ) [qtd] => Array ( [0] => 6 [1] => 7 [2] => 8 )observei que a chave associativa são iguais... arrays não são o meu forte.... não tem como comprar as chaves associativas?... o que quero é fazer com que o cliente ao selecionar um produto e a quantidade seja enviado para o e-mail do administrador.... mas só que a quantidade selecionada não corresponde ao produto selecionado...abraços e obrigado pela força! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 matias_rezende Postado Junho 17, 2009 Denunciar Share Postado Junho 17, 2009 Um pequeno erro de sinal... Foi mal...for ($x = 0; $x < count($_POST['qtde']); $x++){ $produto = $_POST['produtos'][$x]; $qtde = $_POST['qtde'][$x]; echo 'A quantidade digitada para o produto '.$produto.' foi de '.$qtde.'.</br>'; }Agora deve funcionar.Carlos Eduardo Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
MTavares
Prezados Colegas,
estou tentando resolver um pequeno desafio, mas não estou conseguindo sozinho, por isso conto com a ajuda de vocês...
Eu tenho um formulário onde o cliente poderá selecionar vários produtos com a quantidade desejada, os produtos, como a quantidade vem do banco, vejam:
....
<td><input type="checkbox" name="produtos[]" value=<?=$mt_produtos->product;?>"></td>
<td bgcolor="<?=$fundo;?>"><?=$mt_produtos->product;?></td>
<td bgcolor="<?=$fundo;?>">
<div align="center">
<select name="qtd[]">
<option value="selecione">------</option>
<?php for($qtd = 1; $qtd < $mt_produtos->qtd_pct + 1; $qtd++){ ?>
<option value="<?=$qtd;?>"><?=$qtd;?></option>
....
... mas quando eu tento trazer o resultado, ele traz todas as quantidades e os produtos selecionados... quero que a quantidade corresponda ao produto selecionado.. segue abaixo o meu código:
if($_REQUEST["submit] == "Enviar"){
$produtos = $_REQUEST["produtos"];
$quantidades = $_REQUEST["qtd"];
foreach($produtos as $produto){
foreach($quantidades as $quantidade){
if($quantidade != "selecione"){
echo $produto. " - " .$quantidade."<br>";
}
}
}
}
...Conto com o apoio de vocês...
abraços
Link para o comentário
Compartilhar em outros sites
9 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.