在不同的div中使用AJAX响应的部分

时间:2013-12-13 01:58:41

标签: php ajax

我想发送这个AJAX请求:

function sumMonthly() {
var cur_month = $('#month option:selected').attr("value");

var request = $.ajax({
    type: "POST",
    url: 'inc/functions.php',
    data: {action: ["get_sum_income", "get_sum_expense", "get_cash_remaining"], cur_month:cur_month}
});
request.done(function(response){
    $('#sum_income').html('<h1 class="positiveNum float-right">&#36;' + response.get_sum_income + '</h1>');
    $('#sum_expense').html('<h1 class="float-right">&#36;' + response.get_sum_expense + '</h1>');
});
request.fail(function(jqxhr, textStatus){
    alert("Request failed: " + textStatus);
});
};

并以某种方式访问​​返回响应,但我不确定如何只访问响应的某个部分并将其放在一个div中,然后将另一个部分放在另一个div中。这是我的一些PHP:

if(isset($_POST['action']) && in_array("get_sum_income", $_POST['action'])) {   

//do stuff here, put result in $i;


if(!empty($i)) {
    echo $i;
} else {
    echo '&#36;0.00';
};

};

1 个答案:

答案 0 :(得分:1)

这不是您问题的真正“答案”,但我无法在评论中写下我想要的内容。

您需要使用PHP来整合代码并创建如下所示的数组:

$json = array
             (
               'varname1' => $variable1,
               'varname2' => $variable2,
               'varname3' => $variable3,
               'varname4' => $variable4,
               'varname5' => $variable5
              );
$jsonstring = json_encode($json);
echo $jsonstring;

然后在客户端,您可以执行以下操作:

.done(function(response) {
       $('#div1').text(response.varname1);
       $('#div2').text(response.varname2);
       $('#div3').text(response.varname3);
       $('#div4').text(response.varname4);
       $('#div5').text(response.varname5);
                          });

同样,这不是一个具体的解决方案,但它应该让你开始。

我总是写我的php,然后在没有客户端的情况下运行它,抓住屏幕上的输出并将其提交给jsonlint.com以确保它是json。