如何用数据库填充在javascript中创建的选择?

时间:2018-12-15 21:52:31

标签: javascript php

我正在用javascript创建一个选择,并且正在使用此语句用数据库中的数据填充选项,但是当我进入页面时,我既不加载该选项中的数据,也不加载选择我做错了吗?

var option1 = document.createElement("select");
option1.setAttribute("name","select1");
option1.setAttribute("id","select1"+largo);
option1.className ="select";


var miOption1=document.createElement("option");
<?php
  $stmt=user($conn);
  $arr = $stmt->fetchAll(PDO::FETCH_ASSOC);
  foreach ($arr as $row) {
miOption1.setAttribute("value",".$row['us_id'].");
miOption1.setAttribute("label",".$row['us_nom'].");

    }
 ?>  

  option1.appendChild(miOption1);

2 个答案:

答案 0 :(得分:2)

问题是您没有正确输出和使用代码。您将Javascript和PHP混合使用。

我认为您想要这样的东西:

var option1 = document.createElement("select");
option1.setAttribute("name","select1");
option1.setAttribute("id","select1"+largo);
option1.className ="select";

// PHP code interpreted by server
<?php
  $stmt=user($conn);
  $arr = $stmt->fetchAll(PDO::FETCH_ASSOC);

  foreach ($arr as $k => $row)
  {
      // Output code
      echo 'var miOption'.$k.'=document.createElement("option");'
      echo 'miOption'.$k.'.setAttribute("value",'.$row['us_id'].');'
      echo 'miOption'.$k.'.setAttribute("label",'.$row['us_nom'].');'
      echo 'option1.appendChild(miOption'.$k.');'
    }
 ?>

yourElement.appendChild(option1);

答案 1 :(得分:1)

这应该可以快速修复您的代码

<?php
  $stmt=user($conn);
  $arr = $stmt->fetchAll(PDO::FETCH_ASSOC);
  foreach ($arr as $k => $row) {
   echo "var miOption$k=document.createElement(\"option\");\n";
   echo "miOption$k.setAttribute(\"value\",\"". $row['us_id'] . "\");\n";
   echo "miOption$k.setAttribute(\"label\",\"". $row['us_nom'] . "\");\n";
   echo "option1.appendChild(miOption$k)\n";
    }
 ?>  

但是我更喜欢直接使用PHP构建选择HTML,而不是使用JavaScript,

<?php
  $stmt=user($conn);
  $arr = $stmt->fetchAll(PDO::FETCH_ASSOC);
  $selectHTML = "<select>";
  foreach ($arr as $row) {
     $selectHTML .= "<option ";
     $selectHTML .= "value ='" . htmlspecialchars($row['us_id']) . "' >";
     $selectHTML .= htmlspecialchars($row['us_nom']) ;
     $selectHTML .= "</option>\n";
  }
  $selectHTML .= "</select>";
  echo $selectHTML;
 ?>