2009-06-27 56 views
0

嗨,我是很新的AJAX和和評級腳本的工作,但我希望能夠通過多個值回我的AJAX功能:獲取多個值

現在它運行一個名爲評級的php腳本,它將獲得投票/投票的總價值,並將其乘以每次啓動的寬度以獲得準確的當前評級。我想要做的還是回傳票數,以便我可以展示它們。我知道如何通過製作另一個功能來做到這一點,但看起來多餘而且效率不高。

我的問題是,是否有可能不僅返回我的評分框的寬度(值/票* 22),而且還返回1個查詢中的總票數。如果不是更好的問題是更好的傳回一個字符串在jquery中已經得票&值,並用java腳本進行寬度計算?

$(document).ready(function() { 
    getRating(); 
    function getRating(){ 
    $.ajax({ 
    type: "GET", 
    url: "../includes/rating.php", 
    data: "action=get&bookid="+$("#current").attr("value"), 
    cache: false, 
    async: false, 
    success: function($rating) { 
    $("#current").css({ width: "" + $rating }); 
    }, 
    error: function(result) { 
    alert("Error"); 
    } 

}); 
} 

謝謝!

回答

3

是的,你可以傳回兩個值。只需使用json_encode而不是文本發送JSON。

$(document).ready(function() { 
    getRating(); 
    function getRating(){ 
    $.ajax({ 
    type: "GET", 
    dataType: 'json', 
    url: "../includes/rating.php", 
    data: "action=get&bookid="+$("#current").attr("value"), 
    cache: false, 
    async: false, 
    success: function(data) { 
     $("#current").css({ width: "" + data.rating }); 
     $("#votes").html(data.votes); 
    }, 
    error: function(result) { 
     alert("Error"); 
    } 

}); 
} 
+0

完美。非常感謝! – askon 2009-06-27 15:07:45

1

如果你奮力回傳一個回調多個值,你可以嘗試插入隨機字符(如#,東西你不打算使用)插圖中的值,然後把它分解在服務器端。例如。

客戶端...

var callback = value1##value2##value3; 

服務器端...

$values = split($callback, "##"); 

$value1 = $values[0]; 
$value2 = $values[1]; 

希望幫助...

+0

我認爲使用JSON通常會比使用本地方法編碼字符串中的許多值更好 – Jonik 2009-06-27 15:01:27

1

由於寬度是基於一個派生值關於票數,我會通過票數,並在Javascript中進行數學運算。