sleepstar 0 Denunciar post Postado Julho 10, 2006 E ai, pessoal ?Não sei se estou fazendo certo, ou não, Mas como faço para passar um Array pelo method POST ?Do jeito dos 2 arquivos abaixo nao dá certo:teste05.php<HTML><BODY><?include ("./conectar.php");echo"<form action='./teste06.php' method='POST'>\n";echo"<input type='submit' value='Enviar array'>\n";$itens=array(0 => array(0 => "1", 1=> "Ana", 2=> "22"), 1 => array(0 => "2", 1=> "Luc", 2=> "52"), 2 => array(0 => "3", 1=> "Ota", 2=> "31"));echo"<input type='hidden' name='itens' value='$itens'>\n";echo"</FORM>\n";echo"Mostra:\n<br>";echo"<table>";foreach($itens as $vetor){ echo "<tr>\n"; foreach($vetor as $valor){ echo "<td>$valor</td>"; } echo "</tr>\n";}echo"</table>";?></BODY></HTML>teste06.php<HTML><BODY><?$itens=$_POST[itens];echo"Mostra:<br>\n<table>";foreach($itens as $vetor){ echo "<tr>\n"; foreach($vetor as $valor){ echo "<td>$valor</td>"; } echo "</tr>\n";}echo"</table>";?></BODY></HTML> Compartilhar este post Link para o post Compartilhar em outros sites
Rato de Fórum 0 Denunciar post Postado Julho 10, 2006 no campo hidden faça assim<input type="hidden" name="itens[]" value="valor" /> Compartilhar este post Link para o post Compartilhar em outros sites
augustogava 0 Denunciar post Postado Julho 10, 2006 Cara tenta assim: $itens=array(0 => array(0 => "1", 1=> "Ana", 2=> "22"),1 => array(0 => "2", 1=> "Luc", 2=> "52"),2 => array(0 => "3", 1=> "Ota", 2=> "31"));$itens=implode(",", $itens);<input type='hidden' name='itens' value='$itens'> $itens=explode(",",$itens);foreach($itens as $vetor){ print $vetor;} mas achu que não funciona com arrays multidimensionais... Compartilhar este post Link para o post Compartilhar em outros sites
sleepstar 0 Denunciar post Postado Julho 10, 2006 Bom, pessoal !Ainda nao func ! <input type="hidden" name="itens[]" value="valor" />O que é está barra invertida ?FalÔ. Compartilhar este post Link para o post Compartilhar em outros sites
Mario Helme 0 Denunciar post Postado Julho 10, 2006 Voce pode dar um serialize() no seu array antes de colocá-lo no form. E depois, um unserialize() para voltar ao que era. <?php $itens=array(0 => array(0 => "1", 1=> "Ana", 2=> "22"), 1 => array(0 => "2", 1=> "Luc", 2=> "52"), 2 => array(0 => "3", 1=> "Ota", 2=> "31")); echo "<input type='hidden' name='itens' value='".serialize($itens)."'>";?>Quando você for receber esse valor, ele será algo como: a:3:{i:0;a:3:{i:0;s:1:"1";i:1;s:3:"Ana";i:2;s:2:"22";}i:1;a:3:{i:0;s:1:"2";i:1;s:3:"Luc";i:2;s:2:"52";}...} É só dar um unserialize que ele volta ao estado original. Compartilhar este post Link para o post Compartilhar em outros sites
sleepstar 0 Denunciar post Postado Julho 11, 2006 Olá, pessoal !Mario Helme, onde coloco o unserialize(), eu coloquei depois da passagem do POST. Veja abaixo, e o resultado, é ... não funcionou. Já quanto ao serialize(), já especifiquei conforme a sua postagem.Obs: Tenho outra dúvida, como faço para usar um for (), controlando 2 array, por que nao consigo colocar variavel dentro do []. Tem um codigo pronto, para eu dar uma olhada.Muito valeu !!!<b>teste06.php</b><code><HTML><BODY><?$itens=$_POST[itens];$itens='".serialize($itens)."';echo"M o s tra:<br>\n<table>";foreach($itens as $vetor){ echo "<tr>\n"; foreach($vetor as $valor){ echo "<td>$valor</td>"; } echo "</tr>\n";}echo"</table>";?></BODY></HTML></code> Compartilhar este post Link para o post Compartilhar em outros sites
Mario Helme 0 Denunciar post Postado Julho 11, 2006 Encontrei porque o serialize() não funcionava. É que do "outro lado", ele substituia " por \". E com isso o unserialize() não funcionava. Testa agora (aqui funcionou): [teste05.php] <HTML><BODY><?php include ("./conectar.php"); $itens = array( 0 => array(0 => "1", 1=> "Ana", 2=> "22"), 1 => array(0 => "2", 1=> "Luc", 2=> "52"), 2 => array(0 => "3", 1=> "Ota", 2=> "31") );?><form action='teste06.php' method='POST'><input type='hidden' name='itens' value='<?php echo serialize($itens) ?>'><input type='submit' value='Enviar array'></form>Mostra:<br><table> <?php foreach($itens as $vetor){ ?> <tr> <?php foreach($vetor as $valor){ ?> <td><?php echo $valor ?></td> <?php } ?> </tr> <?php } ?></table></BODY></HTML> [teste06.php] <HTML><BODY><?php $itens = str_replace("\\", "", $_POST['itens']) ?>Mostra:<br><table><?php foreach(unserialize($itens) as $vetor){ ?><tr> <?php foreach($vetor as $valor){ ?> <td><?php echo $valor ?></td> <?php } ?></tr><?php } ?></table></BODY></HTML> Não seria mais simples pra você usar $_SESSION[] para passar os valores pra outra página ao invés de usar $_POST[]?. Sei lá, só uma sugestão. E não entendi direito: porque você quer usar for() no lugar do foreach()? Compartilhar este post Link para o post Compartilhar em outros sites
sleepstar 0 Denunciar post Postado Julho 11, 2006 Opa ! Agora funfo legal.Valeu !O lanche de $_SESSION[], ainda sou leigo.Mas eu gostaria de usar o for, pelo seguinte:Tenho 2 array com conteudos e estruturas diferentes, MAS em um indice dos 2, tem valores que eu deva somar, o foreach(), acho que controla apenas 1 array por vez, e o processo precisa de rapidez, em vez de usar 2 foreach(), tenho que usar 1 for().E os tutoriais, livros, etc, nao dão nenhum exemplo este sentido, nas outras linguagem é encontrado isso.Kra, tô gostando de ver, você domina a linguagem msm.FalÔ. Compartilhar este post Link para o post Compartilhar em outros sites
Mario Helme 0 Denunciar post Postado Julho 11, 2006 Domino a linguagem??? Que isso... to longe disso... O lance é ir sempre aprendendo e nunca desistindo diante das dificuldades (que não são poucas). Sobre usar um único for(), acho difícil, mesmo porque você tem um array multi. E nesse caso são realmente 2 laços: array[[1,2,3],[4,5,6],[5,2,4]] Como você precisa pegar cada ítem para trabalhar, e esse ítem também é um array, você precisa varrê-lo novamente. Ou seja, mais um laço. Como você quer colocar valores dentro do laço, o que você pode fazer é usar o foreach() no array principal e o for() dentro de cada array interno: <?php$itens = array( 0 => array(0 => "1", 1=> "Ana", 2=> "22"), 1 => array(0 => "2", 1=> "Luc", 2=> "52"), 2 => array(0 => "3", 1=> "Ota", 2=> "31"));foreach ($itens as $value){ for($f=0;$f<count($value); $f++){ echo "[".$value[$f]."] "; } echo "<br>";}?>Veja se isso resolve. Compartilhar este post Link para o post Compartilhar em outros sites
sleepstar 0 Denunciar post Postado Julho 11, 2006 nao conhece, nenhum bom tutorial só com array, explicando o controle com 2,3,4 ... array´s ao mesmo tempo.se sabe bota o linkFalÔ. Compartilhar este post Link para o post Compartilhar em outros sites