2009-06-27 74 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中进行数学运算。