簡體   English   中英

使用jQuery getJSON填充下拉列表不起作用

[英]Populating a drop down list using jQuery getJSON not working

我正在嘗試使用jQuery的getJSON函數發送變量,但似乎沒有通過,我也不確定如何獲取剛剛在等待的PHP文件中發送的變量,我是否只是通過名稱引用了它我將其發送為,例如,如果我發送一個名為'test'的變量,則可以在另一端這樣獲得它, $_POST['test']嗎? 或該如何工作?

我正在嘗試使用以下方法填充下拉列表,對改進代碼的任何建議將不勝感激!

這是PHP返回的內容:

[{"city":"One"},{"city":"Two"},{"city":"Three"},{"city":"Four"}]

jQuery的:

//get the cities
$("#province").live('change', function(){
    var test = $('#province').val();
    //alert(test);

    $.getJSON("cities.php", test, function(data){

    //clean out the select list
    $('#city').html('');

        //run the loop to populate the drop down list
        $.each(data, function(i, data) {
            var city = data.city;     

            $('#city').append(
                $('<option></option>').html(city)
            );
        });
    });
});

PHP:

$province = $_POST['test'];

//mySQL query here

$myarray = mysql_fetch_array($query, true);
$string = explode(',', $myarray['cities']);

foreach($string as $key=>$value) {
    $string[$key] = array('city'=>$value);
}

$json = json_encode($string);
echo $json;

我可能做錯了什么?

提前感謝!

首先, getJSON是一個get ajax調用。 因此,您應該期望使用getJSON傳遞的數據以$_GET結束,顯然$_REQUEST結尾,而不是$_POST 其次,您必須傳遞一個對象,該對象描述將在關聯數組 $_GET反映的數據映射。

因此您的代碼應為...

$.getJSON("cities.php", { test: $('#province').val() }, function (data) {

這樣,您就可以在PHP端以$_GET['test']身份訪問

我可以給予的一些改進...(未經測試)

//get the cities
$("#province").live('change', function(){

    $.getJSON("cities.php", { test: $('#province').val() }, function(data){

        if(!data.ok) {
            alert('Error getting cities. Please try again later.');
        }

        var markup = '', len = data.cities.length;

        for(var i = 0; i < len; i++) {
            markup += '<option>' + data.cities[i] + '</option>';
        }

        $('#city').html(markup);

    });

});

和PHP

$province = $_POST['test'];

//mySQL query here

$myarray = mysql_fetch_array($query, true);
$cities = explode(',', $myarray['cities']);

echo json_encode(array(
    'ok' => true,
    'cities' => cities
));

祝好運。

暫無
暫無

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

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