JQuery использовать JSON_encoded массив из AJAX - PullRequest
1 голос
/ 24 марта 2011

Я просто пытаюсь разбить элементы массива на отдельные поля ввода в форме через AJAX jquery.

Вот мой код JavaScript:

        $('#based').change(function() { 
        if ($(this).val().length > 0)
        {           
            $.ajax({
                type: "POST",
                url: "ajax.php",
                data: "id="+$(this).val(),
                success: function(data){
                    if (data != 'error')
                    {                       
                        $('#keyword').val(data[2]);
                        $('#keyword_slug').val(data[3]);
                    }
                }
            });
        }
    });

Вот мой PHP-код для 'ajax.php':

$sql = mysql_query("select * from `keywords` where `id`='".mysql_real_escape_string($_POST['id'])."'");

if (mysql_num_rows($sql) == 0)
{
    echo 'error';
}
else
{
    while ($row = mysql_fetch_assoc($sql))
    {
        foreach ($row as $k => $v)
            $data[] = $v;
    }

    echo json_encode($data);
}

Это не работает. Что мне здесь делать? Я посмотрел в serializeArray, но не могу заставить что-либо работать должным образом.

1 Ответ

2 голосов
/ 24 марта 2011

Я думаю, вам нужно dataType: 'json', если вы ожидаете возвращения JSON.

В противном случае jQuery должен угадать, а если вы не отправляете тип контента application/json, он может угадать неправильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...