new user 0 Denunciar post Postado Setembro 21, 2008 Quero saber como gravar o valor de cada array em session. Porque quero usar o valor de cada array individual. O código está aqui: <?php session_start(); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title></title> <style type="text/css"> <!-- body { margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; background-color: #515151; } --> </style> <link href="../css.css" rel="stylesheet" type="text/css"> </head> <body> <form action="popup_escolher_advogados_enviar.php" method="post" name="form1" target="_top"> <table width="480" border="0" cellpadding="0" cellspacing="0" bgcolor="#515151" class="arialbranco12"> <tr> <td> <?php require("config2.php"); $conexao = mysql_connect($host, $user, $password); mysql_select_db($dbname)or die("Não foi possível conectar-se com o banco de dados"); if (!$conexao) { die('Não foi possível conectar: ' . mysql_error()); } echo ''; $resultado = mysql_query("SELECT nome FROM `advogados` ORDER BY nome ASC"); $total = mysql_num_rows($resultado); while($row = mysql_fetch_array($resultado)) { $nome = $row['nome']; print('<input type=checkbox name="advogados[]" value='.$nome.'> '.$nome.'<br />'); } mysql_close($conexao); ?> </td> </tr> <tr> <td> <input type="submit" name="button" id="button" value="Selecionar"> </td> </tr> </table> </form> </body> </html> e o código que grava é esse: <?php session_start(); // Verifica se usuário escolheu algum advogado if(isset($_POST["advogados"])) { // Faz loop pelo array dos numeros foreach($_POST["advogados"] as $advogado) { echo "" . $advogado . "<BR>"; $_SESSION ["session_advogado"] = $advogado; } } // a idéia é que enquanto tem valores na array, grava o valor numa session diferente. // ex: // $_SESSION ["session_advogado1"] = $advogado; // $_SESSION ["session_advogado2"] = $advogado; // $_SESSION ["session_advogado3"] = $advogado; // $_SESSION ["session_advogado4"] = $advogado; echo "<br />"; echo "<br />"; // $teste = 0 ; // for($i=0; $i<count($advogados); $i++){ // echo "$advogados[$i]"; // } echo "<br />"; echo "<br />"; // $total = count($advogados); // echo "existem $total advogados selecionados."; ?> Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Setembro 21, 2008 adicione um argumento para retornar o valor da chave do indice do array na função foreach $i = 0; foreach( $_POST["advogados"] as $key => $val ){ echo "<br>" . $key; echo ': ' . $val; $_SESSION ["session_advogado" . $i ] = $val; $i++; } o techo em negreito nao tem necessidade de uso... nem mesmo o foreach, pois se for pra atribuir os valor do array à variável de sessão, bastaria apenas if( isset( $_POST["advogados"] ) ) { $_SESSION ["session_advogado"] = $_POST["advogados"]; } apenas uma dica.. o nome do indice da variável de sessão, poderia ser simplificado você está atribuindo "session_advogado" $_SESSION ["session_advogado]por lógica, nao precisa dizer que é uma sessão pois já é uma sessão.. $_SESSION ["session_advogado"] ficaria assim $_SESSION["advogado"] resumindo if( isset( $_POST["advogados"] ) ) { $_SESSION ["advogado"] = $_POST["advogados"]; } aplique o que for conveniente. Compartilhar este post Link para o post Compartilhar em outros sites
new user 0 Denunciar post Postado Setembro 21, 2008 adicione um argumento para retornar o valor da chave do indice do array na função foreach $i = 0; foreach( $_POST["advogados"] as $key => $val ){ echo "<br>" . $key; echo ': ' . $val; $_SESSION ["session_advogado" . $i ] = $val; $i++; } o techo em negreito nao tem necessidade de uso... nem mesmo o foreach, pois se for pra atribuir os valor do array à variável de sessão, bastaria apenas if( isset( $_POST["advogados"] ) ) { $_SESSION ["session_advogado"] = $_POST["advogados"]; } apenas uma dica.. o nome do indice da variável de sessão, poderia ser simplificado você está atribuindo "session_advogado" $_SESSION ["session_advogado]por lógica, nao precisa dizer que é uma sessão pois já é uma sessão.. $_SESSION ["session_advogado"] ficaria assim $_SESSION["advogado"] resumindo if( isset( $_POST["advogados"] ) ) { $_SESSION ["advogado"] = $_POST["advogados"]; } aplique o que for conveniente. parece que deu certo sim cara valeu!!! Mas, percebi que esta pegando só a primeira palavra EX: Quando Mario Gomes é escolhido - só mostra Mario. Tem alguma idéia do porque? Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Setembro 22, 2008 nao sei dizer o motivo.. basta debugar e verificar sugiro que verifique se o rsultado da página html está sendo formatado corretamente pois segundo o seu relato e analisando rapidamente o codigo postado no inicio do topico, há um erro básico faltou delimitar o valor dos campos usando aspas duplas "" <input type="checkbox" name="advogados[]" value="VALOR"> codigo original print('<input type=checkbox name="advogados[]" value='.$nome.'> '.$nome.'<br />'); sugestao de correção print('<input type="checkbox" name="advogados[]" value="'.$nome.'"> '.$nome.'<br />'); Compartilhar este post Link para o post Compartilhar em outros sites
new user 0 Denunciar post Postado Setembro 29, 2008 nao sei dizer o motivo.. basta debugar e verificar sugiro que verifique se o rsultado da página html está sendo formatado corretamente pois segundo o seu relato e analisando rapidamente o codigo postado no inicio do topico, há um erro básico faltou delimitar o valor dos campos usando aspas duplas "" <input type="checkbox" name="advogados[]" value="VALOR"> codigo original print('<input type=checkbox name="advogados[]" value='.$nome.'> '.$nome.'<br />'); sugestao de correção print('<input type="checkbox" name="advogados[]" value="'.$nome.'"> '.$nome.'<br />'); Era isso mesmo!!! Resolvido Então! Valeu Hinom Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Setembro 30, 2008 beleza. é um pouco confuso escrever uma linguagem dentro de outra. adote uma padronização para evitar esses erros pequenos. t+ Compartilhar este post Link para o post Compartilhar em outros sites