我有这个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代码,当您单击按钮时,它会添加更多文本框和另一个选择菜单,但它不会在任何新的(添加的)选择菜单中填充数据库中的数据
答案 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;
等等。请注意,“输入”不是控件名称的良好选择。