将PHP变量传递给AJAX变量

时间:2011-03-01 15:40:46

标签: php jquery ajax forms variables

在完成计算表格后,通过PHP加载总数,我们有4个数据(用PHP留下的变量)

$ totalprice; $ totalduration; $ totaldives; $ totalhire;

目前PHP的每一个都以echo结束。然后ajax会像这样收集它们。

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

问题是回声都是结果。

我想发送$totalprice to $('#resultsprice').html(); $totalduration to $('#resultsduration').html();等等......

任何想法如何做到这一点?

非凡

4 个答案:

答案 0 :(得分:7)

您可以从PHP返回JSON字符串:

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

然后,更改你的jquery ajax调用以将响应设置为json:

$.ajax({
    url: your_url,
    dataType: 'json',
    success: function (data) {
        $('#resultsprice').html(data.totalprice);
        $('#resultsduration').html(data.totalduration);
    });

答案 1 :(得分:6)

使用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);
}

答案 2 :(得分:3)

使用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);
        //...
    }
});

答案 3 :(得分:2)

AJAX调用实际返回了什么?如果它是包含各种值的JSON对象,则可以将每个值设置为各种HTML元素。像这样:

success: function(data) {
    $('#resultsprice').html(data.TotalPrice);
    $('#resultsduration').html(data.TotalDuration);
    // etc.
}