通过AJAX查询获取多个值

时间:2009-06-27 14:47:43

标签: php jquery ajax

嘿伙计们,我是AJAX的新手并且正在制作评级脚本,但我希望能够将多个值传递回我的ajax函数:

现在它运行一个名为评级的PHP脚本,其中它采用投票/投票的总值并将其乘以每个开始的宽度以获得准确的当前评级。我想做的还是回传投票数量,以便我可以展示它们。我知道如何通过制作另一个功能来做到这一点,但这似乎是多余的,而且效率不高。

我的问题是,是否可以不仅传回我的评级框的宽度(值/票数* 22),还可以传回1个查询中的总投票数。如果不是更好的问题,最好在jquery中传回一个已经有投票的字符串& value,用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 个答案:

答案 0 :(得分: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");
    }

});
}

答案 1 :(得分:1)

如果你努力在一个回调中回传多个值,你可以尝试在值之间插入一个随机字符(比如#,你不会使用的东西)然后在服务器端分割它。例如。

客户端......

var callback = value1##value2##value3;

服务器端......

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

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

希望有帮助...

答案 2 :(得分:1)

由于宽度是基于投票数的派生值,我会通过投票数并在Javascript中进行数学计算。