ajax响应超出范围的最大值

时间:2017-09-26 18:54:04

标签: javascript php jquery ajax

我需要帮助!我有一个范围输入:

 <input type="range" name="set_workers" class="set_workers" id="set_workers" min="0" max="10">
  <input type="submit">

我有一个在页面加载时运行的ajax脚本获取一些值。其中一个值应在最大范围内输出。所以我想要一个具有动态最大值的范围输入。有没有办法做到这一点?我应该在php中回显一个范围,将其置于ajax响应中吗? 这是我的ajax:

window.onload = function() {
    var current_building = $('#building_name').val();
    $.ajax(
    {type: 'post',
    url: '../account_handle/get_cost_upgrade.php',
    data: {
    building: current_building,
},
    success: function (val){
   $('#display_cost').html(val.test1);
   $("#set_workers").attr("max", val.test2);
}
});

}

和php代码:

$sql    = "SELECT * FROM $buildcost WHERE lvl = '$lvl'";
$result = mysqli_query($conn,$sql);
$row = mysqli_fetch_assoc($result);

$max_w = $row['max_w'];

   echo json_encode(array(
"test1" => "doesn t matter",

"test2" => 
"$max_w"
  ));

我从php中删除了一些无用的部分,php不是问题,正在工作,同样的json,但我不知道如何将该值放入范围的最大值。 谢谢大家!

1 个答案:

答案 0 :(得分:1)

是的,您应该通过php中的echo绝对检索该最大范围值,然后将该值传递到输入的max属性中。像这样的东西可以解决这个问题。

    window.onload = function() {
        var current_building = $('#building_name').val();
        $.ajax(
        {type: 'post',
        url: '../account_handle/get_cost_upgrade.php',
        data: {
        building: current_building,
    },
        success: function (response){
       $('#display_cost').html(response); 
       //This line will set the "max" attribute to whatever you respond with in your PHP, 
       //although please note how you access that data depends on how you 
       //format it in your PHP

       $("#workers").attr("max", response.max)
       //Access the JSON object's value via it's key, like below
       console.log(response.test1);
       //or
       console.log(response.test2);



    }
    });

    }

然而 - 您需要修改您的响应,以便您可以在ajax成功函数中访问它。您如何访问它将取决于您如何格式化PHP响应。如果您发布PHP代码,很乐意提供帮助。