会话未将下拉选中的元素传递给其他php脚本

时间:2014-04-29 06:25:23

标签: php session drop-down-menu

第一个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脚本时,我将数组作为回显元素而不是我选择的元素。 这里的逻辑出了什么问题?

请指导。

1 个答案:

答案 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'];
}