php - 如何从php访问ajax返回的数据?

标签 php jquery mysql ajax

好吧,我可能遇到一些无法找到的语法问题,但我认为还有其他问题。

我有一个 .php 文件,它从数据库中选择多个值,结果是“回显”回它来自的 ajax 调用。

.php 看起来像这样:

<?php
    require("../config/db.php");

    $db = mysql_connect(DB_HOST, DB_USER, DB_PASS)or die("Error connecting to database.");
    mysql_query("SET NAMES UTF8");
    mysql_select_db(DB_NAME, $db)or die("Couldn't select the database."); 

    $query = "SELECT online_users, chat_messages, cards_order FROM track_changes LIMIT 1";
    $result = mysql_query($query, $db) or die(mysql_error().': '.$query);
    $row = mysql_fetch_array($result);

    $changes = array('online_users'=>$row['online_users'],
                'chat_messages'=>$row['chat_messages'],
                'cards_order'=>$row['cards_order']);

    echo json_encode($changes, JSON_FORCE_OBJECT);
?>

jQuery ajax 调用如下所示:

$(document).ready(function() {
$.ajax({ 
    type: 'POST',
    url: '/kanbannew/php_scripts/track_changes.php',
    data: { },
    async: false,
    success: function (data) {      
        console.log(data);
        var users = data.online_users;
        var chat = data.chat_messages;
        var cards = data.cards_order;
        console.log("Online users: " + users + "\nChat messages: " + chat + "\nCards order: " + cards);
    },
    error: function(xhr, desc, err) {
        console.log(xhr);
        console.log("Details: " + desc + "\nError:" + err);
    }
}); // ajax end
});

问题是在第一个警报中我得到了键:值,例如

{"online_users":"0","chat_messages":"0","cards_order":"0"}

但在第二个警报中,我对每个值都未定义:

Online users: undefined
Chat messages: undefined
Cards order: undefined

此打印来自 chrome conzole。 有什么想法为什么我无法访问零吗?

最佳答案

添加数据类型。

$(document).ready(function() {
$.ajax({ 
    type: 'POST',
    url: '/kanbannew/php_scripts/track_changes.php',
    data: { },
    dataType: 'json',
    async: false,
    success: function (data) {      
        console.log(data);
        var users = data.online_users;
        var chat = data.chat_messages;
        var cards = data.cards_order;
        console.log("Online users: " + users + "\nChat messages: " + chat + "\nCards order: " + cards);
    },
    error: function(xhr, desc, err) {
        console.log(xhr);
        console.log("Details: " + desc + "\nError:" + err);
    }
}); // ajax end
});

关于php - 如何从php访问ajax返回的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23449493/

相关文章:

PHP时间戳到DateTime

jquery 鼠标悬停抖动

排序和分组的MySQL查询优化

php - mySQL PHP mysql表中的单独术语

php - 使用PHP从SQL表删除行

php - header ('Content-type: application/octet-stream' ) 导致 0 字节文件

javascript - jQuery:没有动画的 slideDown 令人不快地即时

mysql - 涉及集合比较的 SQL 查询

PHPExcel 单元格相互重叠 >setRowHeight(-1) 自动单元格高度不起作用

javascript - 在显示 Bootstrap 弹出窗口之前执行功能?