我正在用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);
答案 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;
?>