javascript - 向 PHP 发送 Ajax 请求不起作用

标签 javascript php jquery html ajax

我正在尝试向我的 PHP 文件发出 ajax 请求。

当我的“国家/地区”选择选项菜单更改时,会发生 ajax 请求。结果应该是一个名为“State Province”的新选择选项菜单,并且选项将基于“Country”选择选项菜单中所做的选择。

这就是我想要的样子:

ideal select option menus

我遇到的问题是,当 ajax 向 PHP 发出请求时,PHP 似乎返回一个空数组:

firefox developer edition response

有人知道可能出了什么问题吗?

谢谢!

选择选项的 HTML:

<select name="Country" class="form-control input-sm" id="Country">

</select>

带有 onchange 函数的 Ajax 代码:

$("#Country").on("change",function(){
    var val = $('#Country').val();
    performAJAX(val,'Country','StateProvince');
});

function performAJAX(choice,prevSelect,newSelect){
    $.ajax({
            type: "post",
            url: "select-creation.php",
            data: {choice: choice, prevSelect: prevSelect,newSelect: newSelect},
            dataType: "json",
            success: function(data){
                var obj = $.parseJSON(data);
                console.log("meow meow");
            }
    });
}

PHP 代码:

<?php session_start();
    try{
        $choice = $_POST['choice'];

        $prevAttri = $_POST['prevSelect'];

        $nxtAttri = $_POST['newSelect'];

        $data = array();

        $sql = 'SELECT '.$nxtAttri.' FROM agents WHERE '.$prevAttri.' = :userChoice';
        include_once $_SERVER['DOCUMENT_ROOT'].'/inc/Database.class.php';
        $db = new Database();
        $conn = $db->getConnection();
        $query = $conn->prepare($sql);
        $query->bindValue(':userChoice',$choice,PDO::PARAM_STR);

        if($query->execute()){
            $data = $query->fetchAll(PDO::FETCH_ASSOC);
        }//stmt

        return json_encode($data);
    }catch(PDOException $e){
        echo $e->getMessage();
    }
?>

最佳答案

您的代码return json_encode($data);似乎什么都没有或无效,因为您的代码没有使用函数。

只需使用echo json_encode($data);

在ajax端,您不需要使用$.parseJSON(data);,因为您已经将dataType指定为json 它会立即将 PHP 响应的数据转换为对象类型。

关于javascript - 向 PHP 发送 Ajax 请求不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47129253/

相关文章:

javascript - 在谷歌应用引擎中将数据从javascript发送到python

javascript - 旋转图像并使文本稍后出现在图像上

javascript - Angular 4 - 滚动动画

PHP MYSQL while 循环直到与 break 和 sum 相同的值,而不是与下一个值相同

javascript - 网站在 FF 中根本不显示,但在 Chrome 和 IE 中运行良好

javascript - 通过 css 使用 Padding 使子元素居中

JavaScript UTC 时间不工作

javascript - 这个正则表达式可以更有效吗?

php - 将 MySQL 表链接到 PHP 数组

php - 获取返回数组的值