【问题标题】:Does a select box with a size attribute work with $_POST?具有大小属性​​的选择框是否适用于 $_POST?
【发布时间】:2012-09-06 01:19:31
【问题描述】:

我相当直接地使用 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 访问时,选择框中的大小属性是否会导致选择框出现故障。如果它不应该有这种效果,有谁知道可能是什么原因造成的?

【问题讨论】:

  • 我认为当允许多个值时它可以作为数组发送。尝试使用var_dump
  • size 属性与 $_POST 变量无关,可能是别的什么?添加一些代码。 size 只是一次显示项目的一个选项。
  • 也许向我们展示您实际尝试使用变量的代码,而不仅仅是$_POST['select_news'],可能会帮助我们帮助您。因为我看到错误在第 310 行,所以我们应该看到更多相关的代码

标签: php html size forms


【解决方案1】:

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

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) 看看那里有什么

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-29
      • 2012-01-07
      • 2015-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多