Передать переменную PHP в переменную AJAX - PullRequest
2 голосов
/ 01 марта 2011

После заполненной формы расчета, в которой итоги загружаются через PHP, у нас есть 4 фрагмента данных (переменные остались с PHP)

$ totalprice;$ Totalduration;$ totaldives;$ totalhire;

На данный момент PHP заканчивается эхом для каждого из них.Аякс собирает их вот так:

success: function() {
                 $('#results').html();

Проблема в том, что все результаты отражаются.

Я хотел бы отправить $totalprice to $('#resultsprice').html(); $totalduration to $('#resultsduration').html(); и т. Д. И т. Д. *

Есть идеи, как это сделать?

Изумительно

Ответы [ 4 ]

7 голосов
/ 01 марта 2011

Вы можете вернуть строку JSON из PHP:

echo json_encode( array('totalprice'=>$totalprice, 'totalduration'=>$totalduration, 'totaldives'=>$totaldives, 'totalhire'=>$totalhire));

Затем измените ваш jjery AJAX-вызов, чтобы установить ответ на JSON:

$.ajax({
    url: your_url,
    dataType: 'json',
    success: function (data) {
        $('#resultsprice').html(data.totalprice);
        $('#resultsduration').html(data.totalduration);
    });
6 голосов
/ 01 марта 2011

Используйте функцию php json_encode () . Сначала в php создайте массив с 4 переменными. Json кодирует массив и выводит результат. Затем в jQuery используйте jQuery.parseJSON () , чтобы проанализировать код json для переменных javascript. Вот пример:

PHP:

$data = array('var1' => 'value1', 'var2' => 'value2', 'var3' => 'value3', 'var4' => 'value14');
echo json_encode($data);

JQuery:

success: function(data) {
     data = jQuery.parseJSON(data);
}
3 голосов
/ 01 марта 2011

Используйте JSON в качестве формата данных.

В PHP вы можете использовать json_encode для создания строки JSON. compact - это простой способ создать ассоциативный массив из переменных:

echo json_encode(compact('totalprice', 'totalduration', 'totaldives', 'totalhire'));
// compact produces array('totalprice' => <value-of-totalprice>, ...)
// json_encode produces '{"totalprice": <value>, ...}'

В jQuery установите для параметра dataType значение json, и аргумент, переданный обратному вызову success, будет объектом JavaScript:

$.ajax({
    // ... all other options ...
    dataType: 'json',
    success: function(data) {
        // use .html() only for HTML data
        $('#resultsprice').text(data.totalprice);
        $('#resultsduration').text(data.totalduration);
        //...
    }
});
2 голосов
/ 01 марта 2011

Что на самом деле возвращается из вызова AJAX?Если это объект JSON, содержащий различные значения, вы можете установить каждый из них на различные элементы HTML.Как то так:

success: function(data) {
    $('#resultsprice').html(data.TotalPrice);
    $('#resultsduration').html(data.TotalDuration);
    // etc.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...