Может ли Ajax-вызов Jquery принять объект на успех от PHP? - PullRequest
1 голос
/ 11 мая 2010

Я пишу простую функцию ajax и собираюсь заполнить два поля ввода текста результатами «успеха». Мне интересно, какой должен быть мой php-синтаксис для возврата объекта.

Вот моя функция Javascript

function editModule(a){
    data = {moduleNum:a}
    $.ajax({
        type: 'POST',
        data: data,
        url: 'includes/ajaxCalls.php',
        success: function(data) {
            alert(data['title']); // <-- This is where I'm not sure what to return from php
        }
    });
}

Вот мой php документ (пока мне нужно знать, как вернуть объект) ...

<?php
$data =  array('title'=>'this');
echo json_encode($data);

Когда я запускаю функцию, я просто получаю предупреждение "undefined".

Предложения

Спасибо, -J

Ответы [ 4 ]

2 голосов
/ 11 мая 2010

Попробуй это. Вы можете указать, что вы ожидаете JSON-объект, а затем вы можете интерпретировать data соответственно.

function editModule(a){
    data = {moduleNum:a}
    $.ajax({
        type: 'POST',
        data: data,
        dataType: 'json',
        url: 'includes/ajaxCalls.php',
        success: function(data) {
            alert(data.title);
        }
    });
}
0 голосов
/ 11 мая 2010

Возможно, вам потребуется указать тип данных:

function editModule(a){
    data = {moduleNum:a}
    $.ajax({
        type: 'POST',
        data: data,
        url: 'includes/ajaxCalls.php',
        dataType: 'json',
        success: function(data) {
            alert(data['title']); // <-- This is where I'm not sure what to return from php
        }
    });
}
0 голосов
/ 11 мая 2010

Ваша php-страница возвращает: {"title": "this"} в этом случае. Таким образом, вы можете ссылаться на результат с помощью:

предупреждение (data.title);

0 голосов
/ 11 мая 2010

Я возвратил данные JSON с сервера с помощью вызова jQuery Ajax, не на PHP, но он должен быть таким же. Пока вы устанавливаете тип содержимого вашего ответа на application / json, jQuery должен рассматривать responseText как строку JSON. В качестве альтернативы вы также можете установить dataType: "JSON" в вашем вызове Ajax, который сообщает jQuery, что вы ожидаете JSON.

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