3

我相当直接地使用 SQL 和 PHP 来生成一个选择框。我最初有一个带有大小属性​​的选择框,但无法弄清楚为什么$_POST提交表单后总是出现未设置。最终我最终在没有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. 如果它不应该有这种效果,有谁知道可能是什么原因造成的?

4

2 回答 2

0

尝试将名称从 更改select_newsselect_news[],例如当您有多个具有相同名称的复选框时。

于 2012-09-06T01:44:37.983 回答
0

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

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. 看看生成的源代码——也许你以某种方式搞砸了你的引用。
  2. print_r($_RESULT)看看那里有什么
于 2012-09-06T01:37:47.473 回答