没有从PHP获取数据到JavaScript

时间:2016-10-07 16:07:37

标签: javascript php mysql

我正在开发一个使用JavaScript(AJax)调用php文件来查询MySQL服务器的项目。我已经跟踪了对php的调用并发现它正在工作但是AJax调用永远不会得到任何东西。下面是我的JavaScript和PHP代码,有人可以看看它并告诉我我错过了什么。

JavaScript的:

$(function() {
    $('#members').on('input', function() {
        var opt = $('option[value="'+$(this).val()+'"]');
        /*getMember(opt.length ? opt.attr('id'): 0);*/
        $.ajax({
            url: 'data/members.php',
            type: 'POST',
            data: {'action':'get', 'status':opt.attr('id')},
            sucess: function(data) {
                alert(data);
            },
            error: function() {
                alert("We have a problem");
            }
        });
    });
});

PHP:

$action = $_POST["action"];

if ($action == "get") {
    $memberID = $_POST["status"];
    try {
        require "../../classes/data.php";
        $data = new data();
        $conn = $data->connect();
        $sql = "SELECT * FROM members WHERE memberID = " . $memberID;
        $result = $data->query($sql);
        while($row = $result->fetch_assoc()) {
            $returnData = $row;
        }
        echo $returnData;
    } catch (Exception $ex) {

    }
}

4 个答案:

答案 0 :(得分:0)

您遇到语法错误:

替换:

url: 'data/members.php';

为此:

url: 'data/members.php',

','最后

答案 1 :(得分:0)

PHP部分

// You have SQL injection here
$sql = "SELECT * FROM members WHERE memberID = " . $memberID; 
$result = $data->query($sql);
while($row = $result->fetch_assoc()) {
    // You probably want this as array 
    $returnData = $row;
}
// use json_encode
echo json_encode($returnData);

JS部分:

$.ajax({
    url: 'data/members.php',
    type: 'POST',
    // add data type here
    dataType: 'JSON',
    data: {'action':'get', 'status':opt.attr('id')},
    sucess: function(data) {
        ...
    }
});

答案 2 :(得分:0)

我很快学会拼写生活会很好....在javascript中有一个错字...成功就成功了,难怪它从未被解雇过。现在又有一个问题数据正在返回一个数组:数组如何访问数据?如果我使用数据[" key"]我什么也得不到。如果我提醒数据,我会从mysql返回所有数据。

$(function() {
$('#members').on('input', function() {
    var opt = $('option[value="'+$(this).val()+'"]');
    /*getMember(opt.length ? opt.attr('id'): 0);*/
    $.ajax({
        url: 'data/members.php',
        type: 'POST',
        data: {'action':'get', 'status':opt.attr('id')},
        success: function(data) {
            alert(data);
        },
        error: function() {
            alert("We have a problem");
        }
    });
});

});

答案 3 :(得分:0)

数据是否以数组形式获取记录。正如鲍里斯指出的那样

while($row = $result->fetch_assoc()) {
    // You probably want this as array 
    $returnData = $row;
}

$ returnData总是在写入时获取最后一行。

你需要像它一样编码。

$returnData = [];
while($row = $result->fetch_assoc()) {
        // You probably want this as array 
        array_push($returnData,$row);
    }

当结果返回到javascript时,你需要使用JSON.parse

$.ajax({
        url: 'data/members.php',
        type: 'POST',
        data: {'action':'get', 'status':opt.attr('id')},
        success: function(data) {
            var result = JSON.parse(data);
            alert(data);
        },
        error: function() {
            alert("We have a problem");
        }
    });