我有一个包含 1-31 天的下拉框,如果用户返回页面,我想存储/保存用户之前选择的内容。
我生成盒子的功能是:
public function fetchDDMMYYYYDropdown($select_d,$session_d) {
$days = range (1, 31);
$dropdown .= '<select name="'.$select_d.'">';
foreach($days as $key=>$name){
if($session_d==$name){
$session = 'selected';
}
$dropdown .= '<option value="'.sprintf("%02d", $name).'" selected="'.$session.'">'.sprintf("%02d", $name).'</option>';
}
$dropdown .= '</select>';
return $dropdown;
}
我的表格在这个页面上:
<?php
session_start();
include("includes/func.class.php");
$dob = $func->fetchDDMMYYYYDropdown('dob_d', $_SESSION['dob_d']);
?>
<form action="t35t_send.php" method="get">
<?php echo $dob;?>
<input type="submit" value="send">
</form>
然后它会保存 SESSION 变量:
session_start();
$_SESSION['dob_d'] = $_GET['dob_d'];
$dob = $_SESSION['dob_d'];
echo $dob;
我可以说 $_SESSION['dob_d'] 是正确的并被保存,因为我可以在函数和初始表单页面中输出它 - 所以它只是下面的内容,但现在下拉框只是重置回到第一个值,而不是保存的会话:
if($session_d==$name){
$session = 'selected';
}
$dropdown .= '<option value="'.sprintf("%02d", $name).'" selected="'.$session.'">'.sprintf("%02d", $name).'</option>';