简体   繁体   English

如何使用jquery从多维json数组中提取值以基于第一个下拉列表的选定值填充第二个下拉列表?

[英]How to use jquery to pull values from a multidimensional json array to populate a second dropdown based on the selected value of first drop down?

I have a php file that generates a json array and i write this json array into file results.json 我有一个生成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"]
}

I want to build two dropdowns from this array, the first dropdown should have the keys alone like cisco,juniper,huawei etc..... 我想从此数组构建两个下拉菜单,第一个下拉菜单应单独包含键,如cisco,juniper,huawei等。

I did this using the following code: 我使用以下代码进行了此操作:

<?php 
foreach($jsonDataObject as $key => $value)
{ 
?> 
<option value="<?php echo $key; ?>"><?php echo $key ; ?>
</option> 
<?php } 
?> 

I need to split the values of each key on ',' and assign them to another dropdown using jquery.Iam stuck in this for a long time and i know numerous questions similar to this have been asked.Believe me i have tried my best but iam still stuck,i do not want to use ajax to do this.I would like to do this using jquery on the change event of the first dropdown. 我需要在','上拆分每个键的值,然后使用jquery将它们分配给另一个下拉列表。我被困在很长一段时间内,我知道已经问过许多与此类似的问题。相信我,我已经尽了最大努力,但是我仍然坚持,我不想使用ajax做到这一点。我想在第一个下拉列表的change事件上使用jquery做到这一点。

Any help on this is much appreciated. 任何帮助对此表示感谢。

$ .each(jsonData,function(key,data){...})

Give the selects an ID: 给选择一个ID:

<select id="select1">
    <option value="cisco">cisco</option>
    <option value="Juniper">Juniper</option>
    <option value="Huawei">Huawei</option>
</select>

<select id="select2">
</select>

Then you can use this code: 然后,您可以使用以下代码:

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.
});

See fiddle 小提琴

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何在第一个下拉列表中使用所选值填充第二个下拉列表? - how to populate the second drop down using the selected value in first drop down? 即使值与第一个下拉菜单的值相同,我是否仍必须使用JQuery填充第二个下拉菜单? - Do I still have to use JQuery to populate my second drop down menu even if the values are the same as the first drop down menu? 如何根据PHP和jQuery中其他下拉列表的值填充下拉列表? - how to populate on drop down based on the value from other drop down in php and jquery? 如何使用第一个选择中的$ _REQUEST来填充下拉SQL查询中的第二个选择 - How to use $_REQUEST from first selection to populate second selection in a drop down sql query 如何在第一个下拉列表中填充第二个下拉框(硬) - How to populate second drop down box on first drop down (Hard) 如何更改基于第一下拉选择的第二下拉值? - How to change second drop-down value based first drop-down selection? 从第一个下拉列表中选择值之后,在第二个下拉列表中显示值 - display values in the second drop down list after selecting value from first drop down list 如何使用jQuery / AJAX和PHP / MySQL根据选择的第一个下拉列表填充第二个下拉列表? - How to populate second dropdown based on selection of first dropdown using jQuery/AJAX and PHP/MySQL? 根据选定的下拉值填充文本字段 - Populate text field based on the selected drop down value 使用mysql数据库根据第一个下拉框自动填充第二个下拉框 - Using a mysql data base to populate a second drop down box automatically based off of first drop down box
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM