【发布时间】:2013-05-29 23:08:48
【问题描述】:
我已经在一个表单中成功声明并加载了两个下拉菜单,并带有提交输入。
<form action="index.php" method="post">
<select name="sel1">
<?php //dynamically load options ?>
</select><br>
<select name="sel2">
<?php
$opt1= (isset($_POST['sel1'])? $_POST['sel1'] : null);
$Arr = array();
if ($opt1 != null){//loads options into $Arr}
foreach($Arr as $option)
{
if($option== $_POST['sel2']){
echo "<option selected='$selected'>{$option}</option>";
}
else{
echo "<option>{$option}</option>";
}
}
?>
</select>
<input type="Submit" value="Submit"/>
</form>
<?php
$var1 = (isset($_POST['sel1'])? $_POST['sel1'] : null);
$var2 = (isset($_POST['sel2'])? $_POST['sel2'] : null);
?>
我为 sel1 选择一个选项并单击提交,然后 sel2 会根据 sel1 的选择加载选项。然后我选择sel2 并单击提交。 PHP 脚本会根据选择进行一些处理。
但是$_POST 只能从 sel1 中获取值,$var2 始终是null。关于我哪里出错的任何想法?
【问题讨论】:
-
你可以在执行第二次选择后发布 HTML 吗?
-
此表单正在进行什么样的验证?也许你有一个 JS
=你的意思是==? -
如果您发布动态加载 sel2 选项的 php 会有所帮助
-
你设置了
$Arr = array();,你删除了内容吗?如果这是“实时”代码,那么$Arr将始终为空,并且不会向 `sel2 添加任何选项。您实际上可以在第二个下拉菜单中选择任何内容吗? -
是的,sel2 的选项已加载。就在我再次提交之后,sel2选择的值为null。