Javascript函数从MySQL填充选择菜单

时间:2013-03-20 23:22:36

标签: php javascript mysql

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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);
在之后

将select添加到页面中。

顺便说一下,您不需要为表单控件添加id和name。您必须拥有要提交的名称,不需要ID。如果您获得对表单的引用,则可以将控件作为表单的命名属性进行访问,因此您可以使用以下命令引用select:

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

document.forms[0].input;

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