【问题标题】:populating <select> tag with PHP用 PHP 填充 <select> 标记
【发布时间】:2018-06-10 18:50:36
【问题描述】:

我正在尝试通过打印对象数组中的值来动态填充 php 中的选择标记。

这是我的代码

for($i = 0; $i < count($z); $i++)
{
    print('<option value ="'.$z[i]->getId().'">'.$z[i]->getDescription().'</option>');
}

数组已填充,事实上,如果我尝试仅打印字段我会得到结果,但在组合框中什么都不会出现

【问题讨论】:

  • 你的选择标签在哪里?
  • 如果您启用了错误报告,您会在代码中看到错误。
  • 什么是$z?一个数组?
  • 您是否确定已开启错误报告?另外,在开发过程中,您应该启用display_errors。另外,请编辑您的问题以包含 _all: 正确代码(您最近发布了更新的代码作为答案,然后您将其删除)。进行一些适当的调试并转储您必须查看的变量是否包含您所期望的:var_dump($z):

标签: php html for-loop drop-down-menu


【解决方案1】:

i 替换为$i

<select name="name">
  <?php
  for($i = 0; $i < count($z); $i++)
  {
    print('<option value ="'.$z[$i]->getId().'">'.$z[$i]->getDescription().'</option>');
  }?>
</select>

【讨论】:

    【解决方案2】:

    添加选择标签并将i替换为$i

    echo "<select>";
    for($i = 0; $i < count($z); $i++) {
        echo '<option value ="'.$z[$i]->getId().'">'.$z[$i]->getDescription().'</option>';
    }
    echo "</select>";
    

    【讨论】:

      【解决方案3】:

      好的,我通过创建两个支持数组来解决

      $ids = array();
      $descs = array();
      for ($i = 0; $i < count($z); $i++) {
          $ids[$i] = $z[$i]->getId();
          $descs[$i] = $z[$i]->getDescritpion();
      }
      

      并使用它们代替对象

      for ($i = 0; $i < count($z); $i++) {
           print('<option value ="' . $ids[$i] . '">' . $descs[$i] . '</option>');
      }
      

      效率不高,但工作正常。 谢谢你的回答:)

      【讨论】:

        猜你喜欢
        • 2012-10-10
        • 1970-01-01
        • 2022-01-06
        • 1970-01-01
        • 1970-01-01
        • 2017-06-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多