Javascript 使用JSON、PHP和MYSQL填充表单选择选项

Javascript 使用JSON、PHP和MYSQL填充表单选择选项,javascript,Javascript,我无法找出此脚本的错误: var url="json.php"; $.getJSON(url,function(data){ $.each(data.members, function(i,user){ selbox.options[selbox.options.length] = new Option(user.title,user.aid); }); }); 目标是运行json.php从MYSQL中获取数据,并获取该数据以在表单中创建SELECT。 我原以为上

我无法找出此脚本的错误:

var url="json.php";
$.getJSON(url,function(data){
$.each(data.members, function(i,user){
     selbox.options[selbox.options.length] = new Option(user.title,user.aid);
     });
     });
目标是运行json.php从MYSQL中获取数据,并获取该数据以在表单中创建SELECT。 我原以为上面的代码会创建如下内容:

selbox.options[selbox.options.length] = new Option('Private','13');
selbox.options[selbox.options.length] = new Option('Public','14');
selbox.options[selbox.options.length] = new Option('Friends','15');
PHP脚本json.PHP可以工作。它从MYSQL收集数据,并在我使用此JS时按我的需要显示:

$(document).ready(function(){
var url="json.php";
$("#userdata tbody").html("");
$.getJSON(url,function(data){
$.each(data.members, function(i,user){
var tblRow =
"<tr>"
+"<td>"+user.aid+"</td>"
+"<td>"+user.title+"</td>"
+"</tr>" ;
$(tblRow).appendTo("#userdata tbody");
});
});
});
到目前为止,我没有在选择下拉列表中填充任何内容 这是迄今为止完整的JS脚本。这不是我的脚本,在我想要动态下拉列表之前,我对它的实际工作原理知之甚少

<script type="text/javascript">
function setOptions(chosen){
var selbox = document.formName.table;
selbox.options.length = 0;
if (chosen == " ") {
    selbox.options[selbox.options.length] = new Option('No database selected',' ');
    }
if (chosen == "1") {
    var url="json.php";
    $.getJSON(url,function(data){
    $.each(data.members, function(i,user){
            selbox.options[selbox.options.length] = new Option(user.title,user.aid);

    });
    });
    }
if (chosen == "2") {
    selbox.options[selbox.options.length] = new Option('second choice - option one','twoone');
    selbox.options[selbox.options.length] = new Option('second choice - option two','twotwo');
    selbox.options[selbox.options.length] = new Option('second choice - option three','twothree');
    selbox.options[selbox.options.length] = new Option('second choice - option four','twofour');
    }
if (chosen == "3") {
    selbox.options[selbox.options.length] = new Option('third choice - option one','threeone');
    selbox.options[selbox.options.length] = new Option('third choice - option two','threetwo');
    }
}
</script>

如果您放置了json.php代码,那么会更好。无论如何,确保PHP脚本返回jQuery可以理解的JSON编码代码

你可以选择下面的选项来达到同样的效果,因为我怀疑你在这条线上的表现

selbox.options[selbox.options.length] = new Option(user.title,user.aid);
这是我的建议

$.getJSON("json.php", function(j)
{
    var options = '';
    for (var i = 0; i < j.length; i++)
    {
        options += '<option value="' + j[i].optionValue + '">' + j[i].optionDisplay + '</option>';
    }
    $("#select_box").html(options);  // put your select box ID here
});

很抱歉我不擅长JS。当我使用您的建议时,FireBug给了我以下错误:ReferenceError:$未定义$.getJSONjson.php,functionjYou需要附加jQuery。在您使用jQuery的代码中,如何在不附加jQuery文件的情况下使用它?无论如何,从这个链接或GooglejQueryCDN下载jQuery。顺便说一句:bug很好,它们教我们编程。另外,我认为在我的帖子中没有任何问题,它被给予了否定的标记。堆栈溢出不是一个调试服务。包括你自己所做的努力,让这个问题更容易回答,也更适合未来的访问者。我所做的一切都在上面,现在包括@HashTeck的建议。显示的第三个代码用于在表中显示数据。我希望它能创建一个下拉菜单。我只需要知道如何为json中的数据动态创建下拉选项,以便刚刚通过selected==1的区域看起来与刚刚通过selected==2的区域相同,但是在newOption拥有我的数据而不是静态变量之后,我想您需要学习如何调试自己。我不认为这是一个bug,因为脚本作为一个表工作。如何将新选项“第二选择-选项一”和“二一”更改为新选项user.title、user.aid是我所需要的全部