如何将下拉菜单中的选项保存为php会话变量


How to save an option in a dropdown menu as a php session variable?

我正试图将下拉菜单中的一个选项保存为会话变量。

<select name="number" id="number">
            <option>one</option>
            <option>two</option>
            <option>three</option>
        </select>
            <?php
         session_start();
$_SESSION['number'] = $_POST['number'];
?>

它在浏览器页面中返回的是:

注意:未定义的索引:中的数字C: 第46行上的''examplep-portable''htdocs''eva''00ideaselection.php

  1. 这里的错误是什么
  2. 将下拉菜单中的选项保存为会话变量的最佳方式是什么

value添加到下拉

<select name="number" id="number">
      <option value="1">one</option>
      <option value="2">two</option>
      <option value="3">three</option>
</select>

并且在检索该值的同时使用isset函数来检查该值是否已被张贴

<?php
    session_start();
    if(isset($_POST['number'])){
        $_SESSION['number'] = $_POST['number'];
    }
 ?>

试试这个

<select name="number" id="number">
        <option>one</option>
        <option>two</option>
        <option>three</option>
    </select>
   <?php
     session_start();
     if(isset($_POST['number']))
         $_SESSION['number'] = $_POST['number'];
  ?>

您看到的错误是因为您尚未发布表单,并且正试图从$_POST中获取值。$_POST和$_GET有来自已发布表单的数据。因此,当您将表单发布到创建表单的同一php脚本时,当在没有表单发布的情况下加载表单时,它会向您显示通知消息。为了避免通知消息,我放置了一个

   isset($_POST['number'])

勾选,这样就不会显示任何通知。

当表单发布,并且您获得$_POST时,该值将被设置到会话中。

感谢

<select name="number" id="number">
      <option value="1">one</option>
      <option value="2">two</option>
      <option value="3">three</option>
</select>

在检索该值时,请使用empty((函数检查该值是否已发布且不为空。isset((不进行检查,因为数字在$_POST中作为参数作为字符串传递

<?php
    session_start();
    if(!empty($_POST['number'])){
        $_SESSION['number'] = $_POST['number'];
    }
 ?>