数组作为会话variables
是否有可能在PHP中创build一个数组作为会话variables。 情况是,我有一个表格(第1页),有一些单元格链接到一个特定的页面。 下一页将有一个名称列表(第2页,我想保留在一个会话数组中)和各自的checkbox。 提交此表单时,将导致一个事务页面(页面3,其中发布的checkbox的值保存在相应名称的数据库中)。 现在,如果我返回到第一页并单击另一个单元格,会话数组是否包含新的名称列表或旧名单?
是的,PHP支持数组作为会话variables。 看到这个页面的例子。
至于你的第二个问题:一旦你设置会话variables,它将保持不变,直到你改变它或unset
它。 所以如果第三页不改变会话variables,它将保持不变,直到第二页再次改变它。
是的,你可以把数组放在会话中,例如:
$_SESSION['name_here'] = $your_array;
现在你可以在你想要的任何页面上使用$_SESSION['name_here']
,但是确保你在使用任何会话函数之前放置了session_start()
行,所以你的代码应该看起来像这样:
session_start(); $_SESSION['name_here'] = $your_array;
可能的例子:
session_start(); $_SESSION['name_here'] = $_POST;
现在,您可以在任何页面上获取字段值,如下所示:
echo $_SESSION['name_here']['field_name'];
至于你的问题的第二部分,会话variables保持在那里,除非你分配不同的数组数据:
$_SESSION['name_here'] = $your_array;
会话生存时间被设置为php.ini文件。
更多信息在这里
首先使用implode()函数将数组更改为string。 例如$number=array(1,2,3,4,5,...); $stringofnumber=implode("|",$number);
$number=array(1,2,3,4,5,...); $stringofnumber=implode("|",$number);
然后将该string传递给会话。 例如$_SESSION['string']=$stringofnumber;
所以当你到你想要使用数组的页面时,只需要爆炸你的string。 例如$number=explode("|", $_SESSION['string']);
最后号码是你的数组,但记得要在每一页上开始数组。
session_start(); //php part $_SESSION['student']=array(); $student_name=$_POST['student_name']; //student_name form field name $student_city=$_POST['city_id']; //city_id form field name array_push($_SESSION['student'],$student_name,$student_city); //print_r($_SESSION['student']); <table class="table"> //html part <tr> <th>Name</th> <th>City</th> </tr> <tr> <?php for($i = 0 ; $i < count($_SESSION['student']) ; $i++) { echo '<td>'.$_SESSION['student'][$i].'</td>'; } ?> </tr> </table>