Javascript 从PHP代码返回的JSON字符串填充下拉列表

Javascript 从PHP代码返回的JSON字符串填充下拉列表,javascript,php,json,Javascript,Php,Json,我正在从我的PHP类返回一个JSON数组。部分守则如下: ... echo json_encode($users); return json_encode($users); ?> [ { "ID": "1", "firstname": "Jane", "school": "Frohj" }, { "ID": "2", "firstname": "Mathew", "s

我正在从我的PHP类返回一个JSON数组。部分守则如下:

...
echo json_encode($users);
return json_encode($users);

?>
[
    {
        "ID": "1",
        "firstname": "Jane",
        "school": "Frohj"
    },
    {
        "ID": "2",
        "firstname": "Mathew",
        "school": "Lebrasky"
    },
    {
        "ID": "3",
        "firstname": "BAHUUU",
        "school": "uni of kansas"
    }
]
上述代码的echo语句如下:

...
echo json_encode($users);
return json_encode($users);

?>
[
    {
        "ID": "1",
        "firstname": "Jane",
        "school": "Frohj"
    },
    {
        "ID": "2",
        "firstname": "Mathew",
        "school": "Lebrasky"
    },
    {
        "ID": "3",
        "firstname": "BAHUUU",
        "school": "uni of kansas"
    }
]
现在,在我的html表单中,我有一个下拉列表

     <fieldset>
          <legend>Selecting elements</legend>
          <p>
             <label>Select list</label>
             <select id = "myList">
               <option value = "1">I WANT TO DISPLAY USER'S NAME HERE</option>
               <option value = "2">I WANT TO DISPLAY USER'S NAME HERE</option>

             </select>
          </p>
       </fieldset>

我想在下拉框中将用户名显示为字段。这个的值是从传递的JSON中获得的。现在,我如何检索JSON并用用户的名字填充下拉框。

您可以通过JSON\u decode$users解码为JSON结果;此函数用于将json结果转换为数组


借助loop,您可以轻松打印选项。

类似以下内容:

带有php扩展的html页面的页眉

<?php include 'pathTo/find.php' ?>
在脚本标记中:

var
  i, len,
  html = ''
  list = <?php echo getUsers(); ?>;

for ( i = 0; len = list.length; i < len ) {
    html += '<option value="'+ i +'">'+ list[i].firstname +'</option>';
}

// $( html ).appendTo( $( '#myList' ) ); <-- jQuery method
document.getElementById( 'myList' ).innerHtml = html;
你的身体标签:

<fieldset>
    <legend>Selecting elements</legend>
    <p>
    <label>Select list</label>
    <select id = "myList">
    </select>
    </p>
</fieldset>

认为您的select在开始时应该是空的,那么新选项应该附加javascript

<select id = "myList"></select>

<script type="text/javascript">
var data = SOME_SORTOF_GET_JSON(), // get json from your existing function
    select = document.getElementById("myList"),
    newOption;

for(var i = 0, item; item = data[i]; ++i) {
    newOption = new Option(item.firstname, item.id);
    select.add(newOption);
}
</script>

祝你好运。

从Ajax调用中获取JSON,然后填充。如果有问题,请尝试发布代码。假设$data是json数组。然后使用foreach循环u将得到解决方案。像$data[i][firstname]那样,我应该在哪里执行此操作?我的主要问题是将结果集引入HTML。我该怎么做?你用什么来得到结果。ajax。?嗯,这就是我的问题。我正在发送JSON字符串,但我不知道如何检索结果。你能在这里帮我吗?所以你需要解析json。比如:success:functionresult{var text=parseJSONresult;}然后使用for循环在jquery文件中创建一个动态选项卡。并将您的选择框附加到该框中。例如:对于$i=0$I借助loop,您可以轻松打印选项。解析JSON:success:functionresult{var text=parseJSONresult;$'mylsit'.empty;forvar i=0;我的PHP脚本的名称是find.PHP。如果是这样,我如何将数据检索到表单中。您的脚本不在页面上?不。我将它放在单独的类中。它的名称是find.PHP.hi@llep,如果我们可以直接查看您的find.PHP live,那就太好了。如果您已将它上载到您的dev服务器,如果您不介意共享,这将对我们非常有帮助。谢谢!@Illep-您的页面是php页面?