【问题标题】:Get multiple values through an AJAX query通过 AJAX 查询获取多个值
【发布时间】:2009-06-27 14:47:43
【问题描述】:

大家好,我对 AJAX 非常陌生,并且正在编写评级脚本,但我希望能够将多个值传递回我的 ajax 函数:

现在它运行一个名为 rating 的 php 脚本,在该脚本中,它获取 votes / votes 的总值并将其乘以每个开始的宽度以获得准确的当前评分。我想做的也是回传票数,以便我可以显示它们。我知道如何通过创建另一个函数来做到这一点,但这似乎是多余的而且效率不高。

我的问题是,是否可以不仅传回我的评分框的宽度(值/票数 * 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");
    }

});
}

谢谢!

【问题讨论】:

    标签: php jquery ajax


    【解决方案1】:

    是的,您可以传回这两个值。只需使用 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");
        }
    
    });
    }
    

    【讨论】:

      【解决方案2】:

      如果您难以在一个回调中回传多个值,您可以尝试在值之间插入一个随机字符(如#,您不会使用的东西),然后在服务器端将其拆分。例如。

      客户端...

      var callback = value1##value2##value3;
      

      服务器端...

      $values = split($callback, "##");
      
      $value1 = $values[0];
      $value2 = $values[1];
      

      希望对您有所帮助...

      【讨论】:

      • 我认为使用 JSON 通常比想出一种在字符串中编码许多值的本土方法要好
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2017-11-30
        • 1970-01-01
        • 2020-07-07
        • 2018-07-28
        • 2011-09-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多