Ir para conteúdo

POWERED BY:

Arquivado

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

Mendes Mansur

$_POST[ ] vazio apos envio de formulario

Recommended Posts

tipo eu tenho varios selects que agrupam produtos que possuem o msm desconto , o nome do select eh descontox.xx ( onde x.xx eh o tanto de desconto do produto) , mas na hora q eu envio o formulario se eu faço qualquer coisa tipo echo $_POST["desconto0.00"] , ele imprime nao imprime nada, ai eu nao consigo tratar para atualizar o banco , alguem ai ja teve um problema assim ou sabe alguma coisa q eu possa fazer?

 

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sugiro verificar o method do form e verificar se está em POST, as vezes pode estar em GET. Se você usa ajax, verifique se o submit está correto, . Outra também é verificar se não há descontos com valores duplicados, por exemplo:

 

$_POST['desconto10.0'] = 'valor';
$_POST['desconto0.0'] = 'valor2';
$_POST['desconto10.0'] = null;

 

as vezes pode ter mais de um input/select com o mesmo name, então é bom utilizar o name para agrupá-los, da seguinte maneira: name="desconto[]". Assim ele envia o post em forma de array.

 

Um problema a parte que eu tive foi o seguinte. Eu criei um form em uma tabela, mas não separei corretamente as tags, coloquei o form dentro da table, entre as tags table e tr. Foi assim:

 

<table>
<form>
 <tr>
  <td></td>
 </tr>
</form>
</table>

 

Só funcionou o post quando eu passei a tag form para o lado de fora da table. Só lembrando que eu utilizava ajax nesse post.

Compartilhar este post


Link para o post
Compartilhar em outros sites

faça isso:

 

echo '<pre>'; var_dump( $_POST );

e analise se você está tentando usar a key correta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gabriel , eu estou usando o name pra agrupar ja ,o metodo esta como post e eu nao to usando ajax =/

aew William me salvou aqui cara, tipo eu pego o desconto do bd ai monto a variavel assim $_POST["desconto".$desconto]; , no bd o desconto fica guardado x.xx , mas quando eu fiz isso q você falou mostrou q a variavel estava $_POST["desconto0_00"] ao inves de 0.00 , vou arrumar aqui rapidinho

muito obrigado a vcs dois

 

eu soh nao sei como q de . virou _ muita doidera, vcs tem alguma ideia?

 

o problema persiste, pq mesmo se eu mudar pra _ quando eu jogo num foreach ele da

Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\combo.php on line 74.

e se eu olhar no codigo fonte no navegador , o nome na verdade continua com .

Compartilhar este post


Link para o post
Compartilhar em outros sites

só dá para você usar foreach se o name dos inputs forem assim:

 

 

<input name="desconto[]" type="text" />

:lol: entendeu ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ta errado.. faça assim:

<input name="desconto[]" type="text" value="<?php echo $desconto[0] ?>" />

Compartilhar este post


Link para o post
Compartilhar em outros sites

então você precisa de 2 inputs para cada produto.

um para o ID, e outro para o desconto. Isso se cada produto tiver um desconto especifico e individual

Compartilhar este post


Link para o post
Compartilhar em outros sites

cada produto tem o seu desconto , mas como varios produtos podem ter o msm desconto eu agrupei os que tem o mesmo desconto dentro de um select pra poder alterar mais de um de uma vez, sem ter q ficar reescrevendo o novo desconto varias vezes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça como o William Bruno sugeriu que não terá problemas.

sem ter q ficar reescrevendo o novo desconto varias vezes

As vezes é melhor não economizar código por conta da clareza...

Compartilhar este post


Link para o post
Compartilhar em outros sites

então você precisa de 2 inputs para cada produto.

um para o ID, e outro para o desconto. Isso se cada produto tiver um desconto especifico e individual

 

Pode ser feito num único input.

 

<input name="desconto[<?php echo $id; ?>]" type="text" value="<?php echo $desconto[0]; ?>" />

 

As chaves do vetor passado no post assumem as chaves passadas nos names do inputs, assim não é necessário dois input.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas tipo eu to usando um select que fica assim <select name='desconto"<?php echo $desconto; ?>"[]' multiple="multiple" />

dentro do select eu faco isso

$resource = mysql_query("SELECT id,nome FROM produtos");
     while($ids = mysql_fetch_array($resource)){
           echo "<option value='".$ids[0]."' >".$ids[1]."</option>";
}

depois </select> e isso fica dentro disso

     $resource = mysql_query("SELECT desconto FROM produtos GROUP BY desconto");
     while($desconto = mysql_fetch_array($resource)){

pq assim eu tenho varios selects e em cada um deles ficam os produtos com o mesmo tanto de desconto e na hora de alterar eu posso alterar varios produtos de uma soh vez somente selecionando e escrevendo no input o valor do novo desconto.

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.