我正试图将下拉菜单中的一个选项保存为会话变量。
<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
- 这里的错误是什么
- 将下拉菜单中的选项保存为会话变量的最佳方式是什么
将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'];
}
?>