javascript / jquery - понимание функций post () и javascript process () в jquery - PullRequest
1 голос
/ 01 сентября 2011

Я пытаюсь отправить некоторые данные в веб-сервис и использовать возвращаемые им данные XML. Я видел пример в документации JQuery для функции post ():

$.post("test.php", { name: "John", time: "2pm" },
    function(data) {
        process(data);
    }, 
    "xml"
);

Что делает функция процесса? Как выглядят данные? Могу ли я присвоить эти обработанные данные переменной? Просто пытаюсь понять, как я буду использовать значения, возвращенные из этого поста ().

Ответы [ 2 ]

5 голосов
/ 01 сентября 2011

Что делает функция процесса?

Нет такой стандартной функции. Это зависит от вас, чтобы определить это, поэтому он будет делать все, что вы скажете.

Как выглядят данные?

Это будет зависеть от того, что возвращает ваш веб-сервис. Если это XML, он будет представлять собой дерево XML. Так, например, если ваш сервис возвращает следующий xml:

<foo>
    <bar>some value</bar>
</foo>

Вы можете запросить значение узла bar следующим образом:

function(data) {
    var value = $('bar', data).text();
    alert(value);
}

А вот живое демо , где вы можете увидеть его в действии.

4 голосов
/ 01 сентября 2011

process(data); может быть любой функцией, которую вы хотите вызвать, делает что-то с data.В большинстве случаев вы захотите присвоить данные элементу или сделать какой-либо другой массаж перед отображением для пользователя.

Если это не очень сложно, вы можете также пропустить вызов отдельной функции, например:

$.post("test.php", { name: "John", time: "2pm" },
    function(data) {
        $('#target').html(data);   // assuming data is a html string
    }, 
    "xml"
);

Принятие его для обработки формы:

$.post("test.php", { name: "John", time: "2pm" },
    function(data) {
        process(data)
    }, 
    "xml"
);

function process(data) {
    $('#target').html(data);   // assuming data is a html string

}

Если ваши данные в каком-то другом формате, то вы бы помассировали их, чтобы извлечь соответствующие биты или каким-то образом преобразовать их внутри processили любая другая пользовательская функция.

Например, допустим, вы возвращаете объект JSON:

data = { "status": "success", "text": "Processed Succesfully" };

, затем при обратном вызове вы проверяете состояние и отображаете сообщение соответствующим образом

function process(data) {
    if(data.status == "success")
        $('#target').html(data.text);   // assuming data is a html string
    else 
        alert("Error");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...