簡體   English   中英

在JavaScript中使用php數組填充“選擇” ajax

[英]Using php array in javascript to populate a 'select' ajax

我有一個存儲和狀態的多維數組,它使json如下所示:

<?php 
$list[$store][$state] = $city;

echo json_encode ($list);
{"store 1": {"state x": "city 1", "state y": "city 2"}, "store 2": {"state z": "city 3"}}
?>

我需要創建一個選擇,使用所討論數組的數據根據​​選擇的內容更改第二個選擇。 像這樣的東西http://www.daviferreira.com/blog/exemplos/cidades/index.php

如何在javascript中的php中處理此數據? 我如何將它們分開以在每個選擇中使用它們?

我已經嘗試過:

var list = JSON.parse ("<? php echo json_encode($list)?>");

但這沒有用:(

編輯選擇的結構應如下所示。

{"store 1": {"state x": "city 1", "state y": "city 2"}, "store 2": {"state z": "city 3"}}

First select
Store 1
Store 2

if store 1 selected
Second select
State x
State y

if store 2 selected
Second select
State z

像這樣

這是使用jQuery的方法。 如果您使用的是普通JS,則對讀者來說,將其轉換是一項練習。

var list = <?php echo json_encode($list); ?>;
$.each(list, function(store) {
    $("#store_menu").append($("<option>", {
        value: store,
        text: store
    }));
});

$("#store_menu").change(function() {
    var store = $(this).val();
    $("#state_menu").empty();
    $.each(list[store], function(state) {
        $("#state_menu").append($("<option>", {
            value: state,
            text: state
        }));
    });
});

您可以使用jQuery簡單地做到這一點:

$(document).ready(function(){
    var list = <?= json_encode($list); ?>;
    var storeSelect = $("<select></select>");   
    storeSelect.attr('id', 'storeSelect');
    for(var item in list)
    {
        storeSelect.append('<option value="' + item + '">' + item + '</option>');
    }
    $('#theForm').append(storeSelect);


    var storeStates = $("<select></select>");
    storeStates.attr('id', 'storeState');       
    $('#theForm').append(storeStates);  

    $('#storeSelect').change(function ()
    {
        var storeName = $(this).val();
        for(var item in list[storeName])
        {   
            storeStates.html('<option value="' + item + '">' + item + '</option>');
        }   
    });
    $('#storeSelect').change();
});

它僅使用循環來創建選擇菜單。 並使用onChange事件來操縱值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM