簡體   English   中英

php數組通過AJAX放入下拉框

[英]php array in to a drop down box via AJAX

我有幾個下拉框。 我希望第一個選擇類別,然后對PHP文件進行AJAX調用,該文件選擇適當的子類別數組並將其返回到第二個下拉列表。 代碼如下:

帶有子類別的PHP文件:

    $category = $_POST['category'];

if ($category == "World"){
$subcategory = array('Europe' => "Europe", 'North America' => "North America", 'South America' => "South America");}
    else if ($category == "Sport"){
$subcategory = array("Football , Football", "Rugby , Rugby", "Cricket , Cricket"); }
echo json_encode($subcategory);

AJAX

function getsub(category, subcategory) {

var category = document.getElementById('category').value;
$('#subcategory').empty();
$('#subcategory').append("<option>loading...</option>");

//kicking off AJAX
$.ajax({
    url: "../php/subcategory.php",
    type: "POST",
    async: true,
    //this is where we define the data that we will send
    data: {
        category: category,
    },
    success: function (subresults) {
        var subresults = JSON.parse(subresults);
        $('#subcategory').empty();
        $('#subcategory').append("<option value='0'>----Select Sub Categry---</option>");
        $.each(subresults, function (i, item) {

            $('#subcategory').append('<option value="' + subresults[i].id + '">' + subresults[i].name + '</option>');

        });
    },
});
return false;
}

之所以這樣做,是因為我希望將子類別保留在服務器端,並且易於更新而又不干擾代碼。 目前,這是將數組中的項目輸出到下拉框中,但它們是未定義的。 您能幫我將正確的值輸出到下拉框中嗎?

一件事是,如果您的選項的值和標簽相同,則無需使用帶有不必要鍵的'Europe' => "Europe"設置數組。 像這樣設置數組

$subcategory = array("Europe", "North America", "South America");

然后在您的JS中,設置值和標簽,如下所示:

$.each(subresults, function (i, item) {
     $('#subcategory').append('<option value="' + item + '">' + item + '</option>');
});

但是 ,如果您想像這樣保留單獨的值和標簽:

$subcategory = array('EU' => "Europe", 'NA' => "North America", 'SA' => "South America");

然后像下面這樣設置選項值和標簽:

$.each(subresults, function (i, item) {
     $('#subcategory').append('<option value="' + i + '">' + item + '</option>');
});

不需要使用subresults[i] ,因為您已經有值作為item ,它等於subresults[i]

在AJAX中,您需要subresults[i].idsubresults[i].name因此在定義PHP數組時必須使用以下結構:

if ($category == "World"){
    $subcategory = array(
        array('id' => "Europe", 'name' => "Europe"),
        array('id' => "North America", 'name' => "North America"),
        array('id' => "South America", 'name' => "South America")
    );}
else if ($category == "Sport"){
    $subcategory = array(
        array('id' => "Football", 'name' => "Football"),
        array('id' => "Rugby", 'name' => "Rugby"),
        array('id' => "Cricket", 'name' => "Cricket")
    ); }
echo json_encode($subcategory);

暫無
暫無

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

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