具有大小属性的选择框是否适用于$_POST


Does a select box with a size attribute work with $_POST?

我非常简单地使用SQL和PHP来生成选项框。我最初有一个带有大小属性的选择框,不明白为什么提交表单后的$_POST总是没有设置。最终,我尝试了不带size属性的方法,并且成功了。为了确认,我回到了我最初想要的选择框,设置了一个size属性,注意到它未能设置$_POST变量,然后我所做的唯一一件事就是从标记中删除size='10',它按预期工作。

这是具有适当属性的代码。

<select name='select_news' size='10'>
  <?php
    foreach($news_dates_list as $date)
    {
      echo ("<option value='".$date['month']."/".$date['day']."/".$date['year']."'>".$date['month']."/".$date['day']."/".$date['year']."</option>");
    }
  ?>
</select>

当表单被提交,并且它试图访问$_POST['select_news']时,它会生成以下错误:

注意:未定义的索引:第310行C:''website''admin''index.php中的select_news。当我只删除"size='10'"部分时,它不会产生错误,并按预期工作。

因此,我只是想确认,当您试图通过$_POST访问选择框时,选择框中的大小属性会导致选择框出现故障,这是否正确。如果它不应该有这种效果,有人知道是什么原因造成的吗?

不是你的问题的答案,而是改变:

echo ("<option value='".$date['month']."/".$date['day']."/".$date['year']."'>".$date['month']."/".$date['day']."/".$date['year']."</option>");

收件人:

echo "<option value='{$date['month']}/{$date['day']}/{$date['year']}'>{$date['month']}/{$date['day']}/{$date['year']}</option>";

即不使用带有echo的括号,并且使用{}在不必不断地启动/停止字符串的情况下在带引号的字符串内插入变量。


大小与返回的内容无关。其他一些事情正在改变。我建议两件事:

  1. 看看生成的soruce代码——也许你在某种程度上把引用搞砸了
  2. print_r($_RESULT),看看有什么

尝试将名称从select_news更改为select_news[],就像您有多个具有相同名称的复选框一样。