0

我有这个 PHP 代码,它从 MySQL 数据库中填充一个选择菜单......

<select name="input" id="input">
<?php
$sql="SELECT * from table ";
$rs=mysql_query($sql,$conn) or die(mysql_error());
while($result=mysql_fetch_array($rs))
{
    echo '<option value="'.$result["db_field"].'">'.$result["db_field"].'</option>';
}
?>
</select>

这工作得很好,但我需要以某种方式将它放入一个 javascript 函数中。

我有 javascript 代码,当您单击一个按钮时,它会添加更多文本框和另一个选择菜单,但它不会在任何新的(添加的)选择菜单中填充数据库中的数据

4

2 回答 2

0

首先将值的字符串转换为数组,所以你有类似的东西:

var values = ['value0','value1','value2'];

然后您可以将它们转换为选项并将它们添加到选择元素中,例如:

function addOptions(select, values) {
  for (var i=0, iLen=values.length; i<iLen; i++) {
    select.appendChild(new Option(values[i],values[i]));
  }
}

并称它为:

addOptions(document.getElementById('input'), values);

选择添加到页面后。

顺便说一句,您不需要同时添加 id 和 name 来形成控件。你必须有他们的名字才能提交,身份证是不必要的。如果您获得对表单的引用,则可以将控件作为表单的命名属性访问,因此您可以使用以下方法引用选择:

document.forms[0]['input'];

或者

document.forms[0].input;

等等。请注意,“输入”不是控件名称的好选择。

于 2013-03-20T23:42:11.743 回答
0

您可以使用 json_encode 将选项转换为 JSON(我不是 PHP 程序员,不知道使用它的确切语义)

在 PHP 中执行以下操作:

echo '<script>var optionsJSON = '.json_encode(mysql_fetch_array($rs)).'</script>'

在 javascriptn 中执行类似的操作(我正在使用 jquery):

var select = $('select.classOfThisSelect');
var options = JSON.parse(optionsJSON);
for(var i = 0; i < options.length; i++)
  $('option').attr({value: options[i]}).append(options[i]).appendTo(select);

optionsJSON 将是全局可用的 JSON 字符串您可以在 Javascript 函数中自由使用它

注意:您可能需要用引号将 json_encode 括起来

于 2013-03-20T23:32:41.560 回答