我有一个数组
{
"status": "OK",
"message": "Data Show Successful",
"allknife": [
{
"name": "Folder",
"notes": ""
},
{
"name": "Folder2",
"notes": ""
}
}
]
}
我当前的代码运行正确
我当前的代码
<script>
$(document).ready(function() {
$("#person").change(function () {
var val = $(this).val()
if(val == "") return
$.getJSON("http://some.com/Knife/api/l.php?&returnformat=json", {"state":val}, function(res,code) {
$("#name").val(res.message)
$("#age").val(res.status)
})
})
})
</script>
现在我想从 allknife 数组的每个数组名称中填充我的选择框值。
喜欢
<option value="folder">0</option>
<option value="folder2">1</option>
这里的值 0 和 1 表示文件夹是第一个数组 o allknife
当用户选择 #person 选择框时,表单的其他字段将填充我当前的代码,然后当用户选择第二个选择框 0 时,则填充其他字段。
如果他们选择文件夹,则其他归档从 allknife 填充或无阵列。 如果folder2则其他字段从allknife数组2填充
我的表单看起来像
<form>
<select name="person" id="person">
<input type="text" name="name" id="name"><br/>
<input type="text" name="age" id="age"><br/>
<select id="allknife"></select>
<input type="text" name="name" id="name"><br/>
<input type="text" name="note" id="note"><br/>
<input type="text" name="codskill" id="codskill"><br/>
</form>
最佳答案
您需要循环返回的数组。像这样的事情:
$.getJSON("http://some.com/Knife/api/l.php?&returnformat=json", { "state": val }, function(res, code) {
$("#name").val(res.message);
$("#age").val(res.status);
$("#codskill").val(res.allknife[0]['name']);
$.each(res.allknife, function(i, item) {
$('<option />', { text: i, value: item.name }).appendTo('#allknife');
});
})
还有,你的<select name="person" id="person">
缺少结束标记。
关于javascript - 在 PHP 中从 JSON 填充选择列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24053497/