Ajax调用php,获取mysql数据作为数组并在JS函数中使用

时间:2018-02-27 15:56:22

标签: javascript php arrays json ajax

我正在寻求对PHP脚本进行ajax调用以从MySQL获取数据,创建一个json数组并将其传递回ajax调用的成功函数,然后我将其用作JavaScript的参数功能。

这是我的ajax电话,

    $('button[name="message"]').click(function() {
    var $row = $(this).closest("tr");    // Find the row
    var $tenant_id = $row.find(".col-md-1 id").text(); // Find the tenants ID
    var $landlord_id = "<?php echo $id; ?>"
    $.ajax({
        url : "./message.php",
        type : "POST",
        async : false,
        data: {
        landlord_id: $landlord_id,
        tenant_id : $tenant_id
        },
        success: function(data){
            console.log(data);
            var messages = data;
            insertChat(messages.sender_id, messages.body, messages.timestamp);
        }
        })
});

这是我的PHP文件,

    <?php
    session_start();
    require_once('../dbconnect.php');
    // update tenants table to show deposit returned
    if(isset($_POST['tenant_id'])){
    $tenant_id = $_POST['tenant_id'];
    $landlord_id = $_POST['landlord_id'];

    $sql = "SELECT * from messages  WHERE messages.sender_id OR messages.receiver_id = '$tenant_id' AND messages.sender_id OR messages.receiver_id = '$landlord_id'";
    $result = mysqli_query($conn, $sql) or die("Error in Selecting " . mysqli_error($conn));

    //create an array
    $messages = array();
    while($row =mysqli_fetch_assoc($result))
    {
        $messages[] = $row;
    }
    echo json_encode($messages);

}
    ?>

如果有人有教程或个别部分的链接,那就太棒了。我甚至不知道我上面概述的过程是否正确。 如果有人能告诉我正确的方法,这将是非常有帮助的!

由于

1 个答案:

答案 0 :(得分:1)

调整你的javascript方面的一些事情(我不会解释你有的php sql注入问题......但请研究preparebind_paramexecute):

  1. 由于您从php(json_encoded)返回$messages的ARRAY,您需要在success处理程序中循环。

  2. dataType: 'JSON'添加到您的选项中,因此它明确要求从php返回json。

  3. 你错过了几个分号;)

  4. 添加到您的代码中的调整:

    $('button[name="message"]').click(function() {
        var $row        = $(this).closest("tr");
        var tenant_id   = $row.find(".col-md-1 id").text();
        var landlord_id = "<?php echo $id; ?>";
        $.ajax({
            url : "./message.php",
            type : "POST",
            data: {
                landlord_id: landlord_id,
                tenant_id : tenant_id
            },
            dataType: 'JSON',
            success: function(data){
                console.log(data);
                if (typeof data !== undefined) {
                    for(var i = 0; i < data.length; i++) {
                        insertChat(data[i].sender_id, data[i].body, data[i].timestamp);
                    }
                }
            }
        });
    });