Ir para conteúdo
Fórum Script Brasil
  • 0

Array


MTavares

Pergunta

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

  • 0

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é

Link para o comentário
Compartilhar em outros sites

  • 0

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 por MTavares
Link para o comentário
Compartilhar em outros sites

  • 0

beleza Matias

segue 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 por MTavares
Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

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!

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...