JQuery AJAX не работает, чтобы обновить город по провинциям - PullRequest
0 голосов
/ 29 июля 2010

Как видно из названия, я использовал jQuery AJAX, чтобы попытаться получить список городов из базы данных, когда выбрана провинция.

Я использую следующий код:

$('#province').change(function()
{
    var province = $(this).val();

    /*$.get("<?php echo site_url('cottage/cities'); ?>?province="+province, function(data) 
    {
        console.log(data);
        for (i=0;i<=data.length;i++)
        {
            //$('#citydiv').append(data['city']+'<br/>');
            //$('#city').append('<option value="'+data[i]['city']+'">'+data[i]['city']+'</option>');
        }
    }); */
    $.ajax({
    url: "<?php echo site_url('cottage/cities'); ?>?province="+province,
    method: 'GET',
    dataType: 'json',
    success: onDataReceived
    }); 
    function onDataReceived(series) 
{
    console.log(series);

}   
});

И у меня также есть выпадающий список Провинция и Город. Проблема в том, что я получаю возвращаемое «неопределенное», так как мне не нравится способ отправки моих данных.

Данные выглядят так:

[{"city_id":"1107","city":"Young's Point","province":"Ontario","lat":"44.490345","lon":"-78.236008"},{"city_id":"1108","city":"Zurich","province":"Ontario","lat":"43.421185","lon":"-81.624832"}]

Любая помощь будет принята с благодарностью!

Ответы [ 3 ]

2 голосов
/ 29 июля 2010

строки в кодировке json выглядят следующим образом

{"a":1,"b":2,"c":3,"d":4,"e":5}

, тогда как у вас есть квадратные скобки, попробуйте кодировать ваши данные в php с помощью json_encode ($ array);

1 голос
/ 29 июля 2010

Ваши данные должны выглядеть так:

[
    {"city_id":1, "city":"Aberfoyle", "province":"Ontario", "lat":43.472996, "lon":-80.152603},
    {"city_id":2, "city":"Actinolite", "province":"Ontario", "lat":44.543221, "lon":-77.325813}
]

Не заключайте в кавычки цифры, используйте скобки и т. Д. json_encode полезно (как сказал Кристиан Сморра).

0 голосов
/ 29 июля 2010

Попробуйте правильно закодировать ваш ответ json с помощью www.php.net/json_encode

.

В вашей функции onDataReceived () проверьте это также, чтобы убедиться, что это действительные данные.

Даже что-то простое, как это, могло бы предотвратить возникновение любых ошибок JS.

function onDataReceived(series) {
    if(series.length  > 0) {
         // do your stuff
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...