第一个php脚本 -
<?php
session_start();
?>
<html>
<head>
</head>
<body><form method = "post">
<select name="feature" id="feature">
<?php
?>
<option value > Select Feature</option>
<?php
foreach($newFeature as $feat)
{
?>
<option value="<?php echo $feat;?>"><?php echo $feat;?></option>
<?php
}
?>
</select>
</form>
</body>
</html>
<?php
$_SESSION['feature'] = $feature;
?>
第二个PHP脚本 -
<?php
session_start();
echo $_SESSION['feature'];
?>
当我运行第二个php脚本时,我将数组作为回显元素而不是我选择的元素。 这里的逻辑出了什么问题?
请指导。
答案 0 :(得分:2)
您必须提交选择。由于用户尚未选择任何内容,因此无法在此时设置$feature
。
<form method = "post">
<select name="feature" id="feature">
<option value > Select Feature</option>
<?php foreach($newFeature as $feat) : ?>
<option value="<?php echo $feat;?>" <?= $feat == $_SESSION['feature'] : " selected = 'selected'" : "" ?>><?php echo $feat;?></option>
<?php endforeach; ?>
</select>
<input type="submit" value="send" name="mySubmit" />
</form>
当你点击发送&#39;您可以在同一页面上使用$_POST['feature'];
获取该值。如果您想转到另一个页面,则必须设置表单action
属性。
session_start();
$_SESSION['feature'] = $_POST['feature'];
提交后,该页面将重新加载&#39;。检查是否设置了mySubmit
并设置$_SESSION['feature']
(不要忘记在页面顶部开始会话):
if (isset($_POST['mySubmit'])){
$_SESSION['feature'] = $_POST['feature'];
}