Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Junior PQD

[Resolvido] foreach POST array

Recommended Posts

estou tentando pegar variaveis de um formulario com array

 

estou tentando a seguinte linha

 

foreach($_POST["quantidade"] as $quantidade) { $$quantidade = $quant; echo $quant[$i]; $i++}

 

e meu formulari de envio é o seguinte

 

  <form id="compras" name="compras" method="POST" action="<?php echo $editFormAction; ?>">
 <input name="id_operador" type="hidden" value="<?php echo $row_nome_operador['id']; ?>" />
   <?php do { ?>
     <div id="produto">
       <table width="345" border="0">
         <tr>
           <td width="100"><input name="id[]" type="hidden" value="<?php echo $row_produtos['id']; ?>" /><img src="imagens/produtos/<?php echo $row_produtos['img']; ?>" width="100" height="90" /></td>
           <td width="235" valign="top"><span class="nome_produto"><?php echo $row_produtos['nome']; ?></span><br />
             <span class="valor_produto">VALOR: <?php echo $row_produtos['valor']; ?><input name="valor[]" type="hidden" value="<?php echo $row_produtos['valor']; ?>" /></span><br />
             <span class="quantidade_produto">Quantidade:

             <input style=" margin-top:-50;S" name="quantidade[]" type="text" class="input_quantidade" id="quantidade" onFocus="if(this.value=='00')this.value='';" onBlur="if(!this.value)this.value='00';" value="00" />

           </span></td>
         </tr>
       </table>
     </div>
     <?php } while ($row_produtos = mysql_fetch_assoc($produtos)); ?>
<div style="clear:both;"></div>

   <label>
     <input type="submit" name="comprar" id="comprar" value="COMPRAR" />
   </label>
   <input type="hidden" name="MM_insert" value="compras" />
 </form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

parece que ele não pega nada..

 

da o seguinte erro

 

( ! ) Notice: Undefined index: quantidade in C:\wamp\www\caixa\prevenda.php on line 150

Call Stack

# Time Memory Function Location

1 0.0008 416744 {main}( ) ..\prevenda.php:0

 

( ! ) Warning: Invalid argument supplied for foreach() in C:\wamp\www\caixa\prevenda.php on line 150

Call Stack

# Time Memory Function Location

1 0.0008 416744 {main}( ) ..\prevenda.php:0

 

Alguem pode me ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

foreach($_POST["quantidade"] as $quantidade) { $$quantidade = $quant; echo $quant[$i]; $i++}

 

Primeiro, não encontra o index quantidade.

Segundo, você está usando $$, ali em $$quantidade. Assim é somente para referência à variáveis variantes (variable variables), o correto é $quantidade para imprimir o conteúdo de quantidade.

Terceiro, da onde vem $quant?

Compartilhar este post


Link para o post
Compartilhar em outros sites

foreach($_POST["quantidade"] as $quantidade) { 
$$quantidade = $quant; 
echo $quant[$i]; 
$i++;
}

 

Você colocou um $i++ só que não vi nenhum looping.

Não seria algo como:

foreach($_POST["quantidade"] as $quantidade) { 
echo $quantidade; 
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

foreach($_POST["quantidade"] as $quantidade) { $$quantidade = $quant; echo $quant[$i]; $i++}

 

Primeiro, não encontra o index quantidade.

Segundo, você está usando $$, ali em $$quantidade. Assim é somente para referência à variáveis variantes (variable variables), o correto é $quantidade para imprimir o conteúdo de quantidade.

Terceiro, da onde vem $quant?

 

o $quant seria o quantidade.. soh transformei a variavel

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que vi do seu formulário, isso deveria resolver:

 

if(array_key_exists('quantidade', $_POST) && !empty($_POST['quantidade'])){
 foreach($_POST['quantidade'] as $i => $qtde) {
   echo $qtde, '<br>';
 }
}

 

@braços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que vi do seu formulário, isso deveria resolver:

 

if(array_key_exists('quantidade', $_POST) && !empty($_POST['quantidade'])){
 foreach($_POST['quantidade'] as $i => $qtde) {
   echo $qtde, '<br>';
 }
}

 

@braços

 

 

agora não gerou erro nenhu mais tb não apareceu nada...

Compartilhar este post


Link para o post
Compartilhar em outros sites

hum..

então faz assim:

 

print_r($_POST)

 

submeta o formulario e coloque o resultado aqui para a gente ver.

Compartilhar este post


Link para o post
Compartilhar em outros sites

hum..

então faz assim:

 

print_r($_POST)

 

submeta o formulario e coloque o resultado aqui para a gente ver.

 

 

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\wamp\www\caixa\prevenda.php on line 151

 

 151   print_r($_POST) '<br>';

mudei para print_r($_POST). '<br>'; ai sumiu o erro mais nao aparece nada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está enviando o formulário corretamente?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está enviando o formulário corretamente?

 

pessoal erro meu.. antes de enviar o form ele grava o conteudo no bd.. ai redireciona.. então eu colokei ele direto para a pagina prevenda.php e deu certo

 

 

Array ( [id_operador] => 1 [valor] => Array ( [0] => 2.00 ) [id] => Array ( [0] => 2 ) [quantidade] => Array ( [0] => 1 [1] => 2 ) [comprar] => COMPRAR [MM_insert] => compras ) Array ( [id_operador] => 1 [valor] => Array ( [0] => 2.00 ) [id] => Array ( [0] => 2 ) [quantidade] => Array ( [0] => 1 [1] => 2 ) [comprar] => COMPRAR [MM_insert] => compras )

 

soh achei estranho q tudo ficou como array[0]

teria que ser

 

 

Array ( [id_operador] => 1 [valor] => Array ( [0] => 2.00 ) [id] => Array ( [0] => 2 ) [quantidade] => Array ( [0] => 1 [1] => 2 ) [comprar] => COMPRAR [MM_insert] => compras ) 

Array ( [id_operador] => 1 [valor] => Array ( [1] => 2.00 ) [id] => Array ( [1] => 2 ) [quantidade] => Array ( [1] => 1 [1] => 2 ) [comprar] => COMPRAR [MM_insert] => compras )

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, o $_POST, segundo o que você mostrou no formulario, está certo.

E também, o exemplo que te mostrei anteriormente, vai funcionar, de acordo com o seu formulario.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal consegui fazer da seguinte forma

extract($_POST);
if(array_key_exists('quantidade', $_POST) && !empty($_POST['quantidade'])){ 
 foreach($_POST as $i => $qtde) {


 }
 $numero = count($quantidade);
}
if(array_key_exists('quantidade_produto', $_POST) && !empty($_POST['quantidade_produto'])){ 
 foreach($_POST as $i => $qtde) {

 }
 $numero_produto = count($quantidade_produto);
}

$i = 0;

<div style="clear:both;"></div>
   <p><?php echo $numero_produto; ?><br />
 <span class=nome_produto>  Confirma a Compra? </span></p>
   <p><?php


while ($i < $numero) {
       $id = $_POST['id'][$i];
       $valor = $_POST['valor'][$i];
       $quantidade = $_POST['quantidade'][$i];
	 $nome = $_POST['nome'][$i];
	  $img = $_POST['img'][$i];

	$total += $quantidade * $valor;
if($quantidade >=1 ){ 




	echo"<input name=id_produto[] type=hidden value='".$id."' />
	<input name=quantidade_produto[] type=hidden value='".$quantidade."' />
	<input name=nome_produto[] type=hidden value='".$nome."' />
	<input name=valor_produto[] type=hidden value='".$valor."' />
	<input name=totalbd type=hidden value='".$total."' />

       <div id=produto> <table width=345 border=0>
         <tr>
           <td width=100>

           <img src=imagens/produtos/".$img." width=100 height=90 /></td>
           <td width=235 valign=top><span class=nome_produto>".$nome."</span><br />
             <span class=valor_produto>VALOR: ".$valor."</span><br />
             <span class=quantidade_produto>Quantidade:
           ".$quantidade."</span></td>
         </tr>
       </table></div>
";}



	++$i;

}






Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.