首页 > 解决方案 > js中的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;

?>

标签: jquerymysqlajax

解决方案


在您的 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 调用中包含错误方法。


推荐阅读