我有一个生成json数组的php文件,我把这个json数组写入文件 results.json
$jsonData = file_get_contents("/json/results.json");
$jsonDataObject = json_decode($jsonData, true);
<script>
var jsonObj = '<?php echo $jsonData;?>';
alert(jsonObj); //Produces the following output
{"cisco":["Port1/1","Port1/2","Port1/3"],
"Juniper":["Port2/1","Port2/2"],
"Huawei":["Port3/1","Port3/2","Port3/3","Port3/4"]
}
我想从这个数组中构建两个下拉列表,第一个下拉列表应该只有像cisco,juniper,huawei等一样的键......
我使用以下代码完成了此操作:
<?php
foreach($jsonDataObject as $key => $value)
{
?>
<option value="<?php echo $key; ?>"><?php echo $key ; ?>
</option>
<?php }
?>
我需要将每个键的值拆分为','并使用jquery将它们分配给另一个下拉列表.Iam在此停留了很长时间,我知道有很多类似于此问题的问题。请相信我,我试过了我最好,但仍然卡住,我不想使用ajax来做这个。我想在第一个下拉列表的更改事件中使用jquery这样做。
非常感谢任何帮助。
答案 0 :(得分:1)
$。each(jsonData,function(key,data){...})
答案 1 :(得分:0)
选择一个ID:
<select id="select1">
<option value="cisco">cisco</option>
<option value="Juniper">Juniper</option>
<option value="Huawei">Huawei</option>
</select>
<select id="select2">
</select>
然后你可以使用这段代码:
function updateSelect() {
var newKey = $("#select1").val();
$("#select2").empty();
if(newKey in jsonObj) {
var tmp = jsonObj[newKey];
for(i = 0; i < tmp.length; i++)
{
$("<option>")
.attr('value',tmp[i])
.html(tmp[i])
.appendTo('#select2');
}
}
}
$(document).ready(function() {
$("#select1").change(updateSelect);
updateSelect(); // For initial page load.
});
请参阅fiddle