Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Enviar vários array pelo formulário

18-02-2010 15:48

Esse script é para quem tem dúvida quando precisa enviar vários inputs em forma de array ( name="array[]" ) no mesmo formulário e não sabe como pegar esses valores após o envio.

<form action="" method="POST"> <input type="text" name="valor[]" value="a"><input type="text" name="nome[]" value="b"> <br> <input type="text" name="valor[]" value="c"><input type="text" name="nome[]" value="d"> <br> <input type="text" name="valor[]" value="e"><input type="text" name="nome[]" value="f"> <input type="submit" name="envia"> </form>


<?php if($_POST['envia']) { extract($_POST); foreach(array($valor) as $info1) foreach(array($nome) as $info2) for($i = 0; $i < count($info1); $i++) { echo $info1[$i]." e ".$info2[$i]."<br>"; } } ?>

1
A melhor hospedagem para o seu site HostGator!
 
Primeiras postagens
Primeiras postagens
Mensagens: 9

Enviar vários array pelo formulário

22-03-2011 09:20

Bem, eu tenho um form com várias informações dentro de um foreach, mas quero gravar apenas uma observação para o item ao qual o usuário escolherá.
No envio para o controlador preciso atualizar as tabelas (obs) de acordo com o item que o usuário selecionou, porém, relembrando que são todas listadas num mesmo form.
o nome do item fica: <textarea name="carrinhoItem[<?php echo $lista->id;?>][comentario]">
a questao eh como tratar no controlador.
Obrigada. *:
0
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Enviar vários array pelo formulário

22-03-2011 09:49

O valor é recibido como? Algo tipo: carrinhoItem[0][comentario] ?
0
A melhor hospedagem para o seu site HostGator!
 
Primeiras postagens
Primeiras postagens
Mensagens: 9

Enviar vários array pelo formulário

22-03-2011 09:57

o indíce do vetor é a id do carrinhoItem.

EX:

<form> foreach ($carrinhoItem as $lista){    <input type="text" value="$lista->produto_id">$lista->titulo    <textarea name="carrinhoItem[<?php echo $lista->id;?>][comentario]"> } </form>

Sabendo que o textarea é a observação sobre o produto, e que vou enviar mais de um produto, como vou tratar no controlador o recebimento desses dados associados.

$carrinhoCompraItem = new CarrinhoCompraItem (); $carrinhoCompraItem->where('id', $this->input->post("nomeDoQueVemPorPost")); 

Lembrando que a frame aqui nao importa, e sim como vou receber esse dado no controller. Como vou tratar a informação desse form?
0
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Enviar vários array pelo formulário

22-03-2011 10:38

Então você precisa obter o índice e o valor do textarea?
0
A melhor hospedagem para o seu site HostGator!
 
Primeiras postagens
Primeiras postagens
Mensagens: 9

Enviar vários array pelo formulário

22-03-2011 11:03

isso.
preciso atribuir ao produto_id
o valor da observacao que faz referencia.
0
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Enviar vários array pelo formulário

22-03-2011 12:19

Dessa forma que quer eu não sei como fazer. Também tem que observar que o índice do array não ficaria relacionado ao id. O que indico, seria usar mais ou menos o exemplo que indiquei, com um primeiro campo, que seria hidden, e teria o id. Iria seguir a mesma lógica do exemplo, porque em uma linha você iria imprimir os valores dos 2 array, do input hidden e do textarea.
0
A melhor hospedagem para o seu site HostGator!
 
Primeiras postagens
Primeiras postagens
Mensagens: 9

Enviar vários array pelo formulário

22-03-2011 16:39

Consegui resolver e esqueci de postar.

Com o <textarea> pegando a id e atribuindo valores de indice igual ao valor do carrinhoItem, no controller fica:

foreach ($carrinhoCompraObs as $id=>$item){                         $carrinhoCompraItem = new CarrinhoCompraItemModel();             $carrinhoCompraItem->where('id', $id);             $carrinhoCompraItem->update('observacao', $item["comentario"]);        } 

onde
$carrinhoCompraObs = $_POST("carrinhoItem"); 

e $id = a id que concatena o carrinhoItem.

funcionou certinho.
*:
0

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado