+1

Como faço para passar uma array pelo <input hidden> ?

criado por Bruno Augusto Ramos Pires em 11/05/2010 2:45pm
Bom pessoal eu estou querendo passar valores de uma array que estão em uma página para outra através do input hidden.

Lista de Respostas:

+3
07/06/2010 5:46pm
(~14 anos atrás)
Eu preferiria colocar em $_SESSION para segurança
Pois um usuário que entende de JavaScript facilmente vai conseguir modificar estes valores dentro de um campo hidden.
Já em $_SESSION é mais seguro...

+1
11/05/2010 3:32pm
(~14 anos atrás)
Marcos Regis respondeu:
Existem algumas técnicas.

1 - Usar implode/explode
2 - Usar serialize/unserialize
3 - Usar um input com o nome usando colchetes para cada valor do input

ex.:

<?php
$vetor= range('A','H');
##############################

# Implode/ Explode
?>
<input type="hidden" name="dados" value="<?php echo implode('|',$vetor)?>" />
<?php
// Recuperando
$vetor = explode('|',$_REQUEST['dados']);

# serialize/unserialize
?>
<input type="hidden" name="dados" value="<?php echo serialize($vetor)?>" />
<?php
// Recuperando
$vetor = unserialize($_REQUEST['dados']);

# diversos inputs
foreach($vetor as $v)
{
  echo '<input type="hidden" name="dados[]" value="'.  $v .'" />';
}

// Recuperando 
$vetor = $_REQUEST['dados'];


0
11/05/2010 3:47pm
(~14 anos atrás)
Ai eu nao sei ql seria a melhor forma.Eu vou explicar + ou - oq eu qro fazer pra ver se vc consegui entender.Eu tenho pagina com um simulador de formas de pagamento,q dependo de como o aluno pagar a parcela do curso(dinheiro,cheque,etc) vai ter um desconto diferente.Essas parcelas são geradas atras de for e eu tava qrendo passar o valor dentro do for q esta como array para um hidden e mandar para outra pagina.Seria possivel fazer isso com umas dessas formas q vc me indicou?

0
12/05/2010 7:51pm
(~14 anos atrás)
BOZO respondeu:
Sim, com qualquer uma que o Marcos te indicou.

Outra maneira eh passar via Session

//na primeira pagina
$_SESSION["dados"] = $seu_array;

//na outra pagina
$pega_array = $_SESSION["dados"];


0
13/05/2010 12:39pm
(~14 anos atrás)
Eu vou tentar aki e ver se funciona.
Ve se esta certa do jeito q penso q
Na primeira pagina eu coloco
Exemplo:
$_SESSION["formaPagamento"] = $formaPagamento[$x]; <- array com o valor

Segunda pagina:

$formaPagamento[$x]= $_SESSION["formaPagamento"];
^^
|| Array q recebe o valor.

0
13/05/2010 2:27pm
(~14 anos atrás)
Por favor só envie respostas para a pergunta original por esse formulário.

Se precisar perguntar alguma coisa ao criador dessa FAQ, envie um comentário pelo link disponível no topo da página.

0
13/05/2010 8:24pm
(~14 anos atrás)
BOZO respondeu:
vc pega as forma de pagamento e joga nu array

ex:

$formaPagamento["avista"] = "0.99";
$formaPagamento["boleto"] = "1.0 + taxa abusiva";
$formaPagamento["figurinha"] = "1.00";

$_SESSION["formaPagamento"] = $formaPagamento;

//dai quando recebe vc tem


echo $_SESSION["formaPagamento"]["avista"];//Retorna 0.99



0
18/05/2010 8:35pm
(~14 anos atrás)
Se é extremamente necessário, eu uso com os colchetes:

<form method="post" action="...">
<input type="hidden" name="vetor[]" value="primeiro valor" />
<input type="hidden" name="vetor[]" value="segundo valor" />
<input type="hidden" name="vetor[]" value="terceiro valor" />
<input type="hidden" name="vetor[]" value="quarto valor" />
...

<input type="submit" value="Enviar" />
</form>

Quanto as outras soluções, só um detalhe:
serialize/unserialize pode ser perigoso, já que gera caracteres binários que podem estragar o seu XHTML, por exemplo. Porém, é possível usá-la aplicando um filtro como o base64_encode/base64_decode, que só utiliza caracteres imprimíveis e que não prejudicam o XML.

// De vetor para string serializada
$serializado = base64_encode(serialize($vetor));

// De string serializada para vetor
$vetor = unserialize(base64_decode($serializado));

0
30/08/2010 1:07pm
(~13 anos atrás)
Estou com o Carlos Eduardo passa por session, muito mais seguro

0
09/11/2010 1:05pm
(~13 anos atrás)
Leonardo Neves respondeu:
<?php

echo "<input type='hidden' name='nome aki' value='".$array['xx']."' />";

?>

ou

<input type="hidden" name="nome aki" value="<?php echo $array['xx'] ?>" />

Esse é o modo mais simples!

Nova Resposta:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)