【问题标题】:Two dropdownmenus in one form一种形式的两个下拉菜单
【发布时间】: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。

标签: php html select post


【解决方案1】:

$Arr 是一个空数组。因此,基本上每次单击提交时,应该填充 sel2 的 php 代码都不会按预期工作。您需要在此行之后将您的选项添加到 $Arr:

$Arr = array();

【讨论】:

  • sel2 已正确填充。只是我再次提交后,$_POST似乎无法获取到sel2提交的值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-06
  • 2015-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多