【问题标题】:can't make the dropdown feed by PHP and MYSQLI to work无法使 PHP 和 MYSQLI 的下拉提要工作
【发布时间】:2018-10-22 15:54:55
【问题描述】:

我已经做了十几次这样的事情,但不知何故它不起作用。

我的代码是:

 $query_locals = "SELECT * FROM TbLocal LEFT JOIN TbFraccao ON TbLocal.PkLocal=TbFraccao.FkLocal LEFT JOIN TbTipo ON TbFraccao.FkTipo=TbTipo.PkTipo ORDER BY TbLocal.LocalNome, TbFraccao.FraccaoNome";
$result_locals = mysqli_query($conn, $query_locals);

$lista_locals="";

      while($row_local = mysqli_fetch_assoc($result_locals))
      {$lista_locals = $lista_locals . '<option value="' . $row_local['PkFraccao'] . '"> ' . $row_local['LocalNome'] . "- ". $row_local['TipoNome'] . " - ". $row_local['FraccaoNome'] ."</option>";

        echo $row_local['LocalNome']. "<br>";
      };


echo "lista de locais -  " . $lista_locals;

echo $row_local['LocalNome']. "&lt;br&gt;"; 可以正常工作,但 echo "lista de locais - " . $lista_locals; 没有...任何猜测??

  • 我已经在我的数据库中直接尝试了该查询,它工作正常。
  • 我已经符合所有列名。

这是表单部分:

<div >
  <label class="control-label " for="local">Local</label>
  <select class="select form-control" id="local" name="local" >

  <?php 
  echo $lista_fraccoes;?>
  </option>
  </select>
 </div>

【问题讨论】:

  • 像这样初始化$lista_locals='';
  • 注意:mysqli 的面向对象接口明显不那么冗长,使代码更易于阅读和审核,并且不容易与过时的mysql_query 接口混淆。在您对程序风格投入过多之前,值得转换一下。示例:$db = new mysqli(…)$db-&gt;prepare("…") 程序接口是 PHP 4 时代引入的 mysqli API 的产物,不应在新代码中使用。
  • 在每个变量上加上_local 后缀是一种习惯,它会变得古怪到令人讨厌的程度。您将使用的几乎所有变量都是“本地的”。全局变量应该是例外,并且尽可能避免。
  • 不清楚您所说的“不工作”是什么意思。您的意思是“不获取数据”还是“根本不显示任何内容”?请记住,“不工作”是您可以给出的最没有用的诊断,所以要更具体。
  • &lt;option&gt; 应该在 &lt;select&gt; 内部。

标签: php html mysql mysqli dropdown


【解决方案1】:

您在此缺少选择标签,请尝试在选择中使用选择标签和附加选项。目前这是将选项呈现为 html,但由于缺少选择,因此看起来不像下拉菜单。

$lista_locals='<select name="XYZ">';
while($row_local = mysqli_fetch_assoc($result_locals)) {
    $lista_locals = $lista_locals . '<option value="' . $row_local['PkFraccao'] . '"> ' . $row_local['LocalNome'] . "- ". $row_local['TipoNome'] . " - ". $row_local['FraccaoNome'] ."</option>";

    echo $row_local['LocalNome']. "<br>";
};
$lista_locals = $lista_locals . "</select>";
echo "lista de locais -  " . $lista_locals;

希望对你有所帮助。

【讨论】:

    【解决方案2】:

    echo $lista_locais;无法正常工作,因为 html 浏览器将其解释为 html。

    一旦我从&lt;option value=' . $row_local['PkFraccao'] . '&gt; 中删除了“&lt;”之一,它就会打印出选择选项的条目列表!

    由 Kamal Paliwal 在 cmets 中解决

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-13
      • 2016-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多