Como faço para passar uma array pelo <input hidden> ?
Bom pessoal eu estou querendo passar valores de uma array que estão em uma página para outra através do input hidden.
comentários (0)
suspender
Lista de Respostas:
07/06/2010 5:46pm
(~1 ano atrás)
(~1 ano 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...
Pois um usuário que entende de JavaScript facilmente vai conseguir modificar estes valores dentro de um campo hidden.
Já em $_SESSION é mais seguro...
11/05/2010 3:32pm
(~1 ano atrás)
(~1 ano atrás)
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.:
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'];
11/05/2010 3:47pm
(~1 ano atrás)
(~1 ano 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?
12/05/2010 7:51pm
(~1 ano atrás)
(~1 ano atrás)
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"];
Outra maneira eh passar via Session
//na primeira pagina
$_SESSION["dados"] = $seu_array;
//na outra pagina
$pega_array = $_SESSION["dados"];
13/05/2010 12:39pm
(~1 ano atrás)
(~1 ano 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.
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.
13/05/2010 2:27pm
(~1 ano atrás)
(~1 ano 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.
Se precisar perguntar alguma coisa ao criador dessa FAQ, envie um comentário pelo link disponível no topo da página.
13/05/2010 8:24pm
(~1 ano atrás)
(~1 ano atrás)
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
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
18/05/2010 8:35pm
(~1 ano atrás)
(~1 ano atrás)
Se é extremamente necessário, eu uso com os colchetes:
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.
<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));
30/08/2010 1:07pm
(~1 ano atrás)
(~1 ano atrás)
Estou com o Carlos Eduardo passa por session, muito mais seguro
09/11/2010 1:05pm
(~1 ano atrás)
(~1 ano atrás)
<?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!

respondeu:
respondeu: