js中的ajax调用未触发

时间:2018-11-06 05:21:01

标签: jquery mysql ajax

我有以下代码从MySQL检索数据。以下测试表明ajax部分有问题,因为不会执行'ttt'警报。我想念什么?

function autoFill() {
    var claimantIDs = document.getElementById('claimant_search').value;
    alert(claimantIDs);

    $.ajax({
        type: "POST",
        url: "get_claim.php",
        data: {ID, claimantIDs},
        dataType: "json",
        success: function(data){
            alert("ttt");
        }
    });

    alert("END");
}

相关的php是:

<?php

    require_once('../dbconnect.php');

    $ID = $_POST['ID'];

    $result = mysql_query("select *  from 1tbl_CLAIMANT_DETAIL  where ID = '".$ID."' ") or die(mysql_error());

    $row = mysql_fetch_array($result);

    $data = json_encode($row);

    echo $data;

?>

4 个答案:

答案 0 :(得分:1)

在您的AJAX部分中,查看通过POST方法传递值的方式

$.ajax({
                    type: "POST",
                    url: "get_claim.php",
                    data: {ID, claimantIDs},// <-- problem
                    dataType: "json",
                    success: function(data){
                            alert("ttt");
                    }
            });
AJAX中的

data字段需要一个JSON对象,该对象应该是键值对,但是您直接传递该值,并且我认为由于这个原因,您的PHP代码无法获取值,这就是代码无法正常运行的原因。您还应该在AJAX调用中包含错误方法。

答案 1 :(得分:0)

嗨,

我认为以您的Ajax代码方式进行数据传递是错误的。

请尝试
数据:{ID:ClaimantIDs},
在您的Ajax代码段中。

答案 2 :(得分:0)

尝试通过在文件顶部打印$ _REQUEST变量来调试get_claim.php文件

    <?php
    echo '<pre>';
    print_r($_REQUEST);
    echo '</pre>';
    die();
    ?>

如果您能够看到ajax传递的数据,则您的ajax可以正常工作。此外,请检查网络,以确保URL是否正确命中。

答案 3 :(得分:0)

问题在这里。 {ID, claimantIDs},

将其更改为{'ID' : claimantIDs},

此外,将mysql to mysqli更改为mysql是不推荐使用的版本。您将无法在最新的PHP版本中使用它。