Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

new user

[Resolvido] com array e session

Recommended Posts

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.