怪异的AJAX错误:在使用不同的值执行完全调用时获取响应时,没有获得对AJAX调用的响应

时间:2017-05-21 18:40:40

标签: javascript php jquery ajax

我有一个管理面板,我想在每个订单上使用单选按钮将订单状态更新为待处理/已完成。

这是我的HTML:

<td><form class="radio">
    <label><input type="radio" name="radio" value="0" checked="checked" data-id="42">Pending</label>
    <label><input type="radio" name="radio" value="1" data-id="42">Done</label>
</form></td>

这是JavaScript:

  $("input[type='radio']").click(function() {
    var radio = $(this).val();
    var id = $(this).data("id");
    $.ajax({url: "functions.php?radio=" + radio + "&id=" + id, success: function(result){
        alert(result);
    }});
  });

这是我的PHP:

if($_GET['radio']) {
    $query = "UPDATE `kvitel` SET `status`= ".$_GET['radio']." WHERE `id`= " . $_GET['id'] . " LIMIT 1";
    if ($conn->query($query) === TRUE) {
        echo 1;
    } else {
        echo 2;
    }
}

当我按下“完成”单选按钮时,一切正常,但当我尝试按下“待定”单选按钮时,我得到一个空的AJAX响应,数据库不会更新。

任何人都可以帮我这个吗???

2 个答案:

答案 0 :(得分:1)

您的问题是value="0"if中的PHP语句失败,因为它变为0 false

if($_GET['radio']) { // GET value is 0, this fails.

答案 1 :(得分:1)

尝试更改:

if($_GET['radio'])

if(isset($_GET['radio']))

如果你看if(variable)你正在检查一个布尔值,0意味着假,所以它不应该进入那个分支