2013-12-13 45 views
0

我想給這個AJAX請求:在不同的div 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'; 
}; 

}; 
+0

所以我假設$我是一個JSON數組。它是多行數組還是隻有一行?如果它是一個多行,你需要用.each函數解析json數據。如果它是一行代碼,那麼你可以使用$('#divname')。text(response.variablename);等等。也許你可以給我們提供更多信息。 – TimSPQR

+0

沒有它不是一個JSON數組。它是一個數組中的單個值。我需要使用json_encode嗎?此外,上面的php代碼只是多個代碼塊中的一個,它們都會回顯$ i,或者它們需要回顯不同的變量,但重點在於,當它完成所有操作時,$ i是單個數字,但是ajax響應應該包括多個單獨的號碼。我想訪問每個這些單獨的數字,並把它們放在單獨的div中。 – hyphen

+0

爲此目的利用json_encode,這就是爲什麼它在那裏。 – Zarathuztra

回答

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。

+0

這非常有幫助。我將能夠重構我的整個應用程序並使其效率更高。謝謝! – hyphen