javascript - Ajax调用插入

标签 javascript php sql

我有 2 个 ajax 调用,一个用于插入数据,一个用于获取数据。连同选择和插入功能。 ajax 调用选择的控制台日志为空。但是,当我检查 phpmyadmin 时,正确的值就在那里。 如果我再次开始游戏,将有 1 个值(来自上一个游戏),但实际游戏的分数不存在。直到我重新开始游戏。等等。有谁知道为什么值在我的 sql 中但 ajax 调用说它是空的?

我从中了解到的。通过 ajax 有一个分数,在 php 中它将进入“检查 json”部分,它看到 json 不为空,因此它转到 InsertScore()。 第二个 ajax 已转换,但这次它没有 json,因此它将进入方法“GetScores”。

插入总是发生在选择之前,因此应该可以看到最后的分数,我不明白为什么它不这样做。

Ajax 调用插入:

$.ajax({
     type: "POST",
     url: "Database.php",
     dataType: "json",
     data: { json: jsonData }                    
});
                                    

__ajax调用选择:__
$.ajax({
    url: "Database.php",
    type: "POST",
    dataType: "json",
    success: function (obj) {
        console.log(obj);
        stageRef.$("var1").html(obj[0].x);
        stageRef.$("var2").html(obj[0].y);
        stageRef.$("var3").html(obj[1].z);
        stageRef.$("var4").html(obj[1].a);
        stageRef.$("var5").html(obj[2].b);                  
        stageRef.$("var6").html(obj[2].c);
    }                  
});

__php 插入:__
function InsertScore($obj) {
    $query = "INSERT INTO table (x, y) VALUES('" . $obj['score'] . "','" . $obj['naam'] . "')";
    $result = mysql_query($query);
}

__php 选择:__
function GetScores() {
    $query = "SELECT * FROM table ORDER BY x DESC LIMIT 3";
    $result = mysql_query($query);

    $scoresArray = array();
    $i = 0;
    while ($row = mysql_fetch_assoc($result)) {
        $scoresArray[$i]['x'] = $row['x'];
        $scoresArray[$i]['y'] = $row['y'];
        $i++;
    }
    echo json_encode($Array);
}

__检查 json:__
if (isset($_POST['json'])) {
    $x= json_decode($_POST['json'], true);
    InsertScore($x);
} else {
    GetX();
}

最佳答案

使 ajax 调用同步:

$.ajax({
    type: "POST",
    url: "Database.php",
    dataType: "json",
    data: { json: jsonData },
    async: false 
});

这样“选择”调用将等待“插入”调用完成。

关于javascript - Ajax调用插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20763293/

相关文章:

php - Mysqli "Prepare statement"没有创建对象

mysql - 如何使用 like/or like 的左外连接

javascript - Angular 6 正确初始化自定义输入组件

javascript - AngularJS 范围不一致

PHP Multiselect with Chosen jQuery - 返回所有值而不仅仅是选择的值

javascript - 如何跟踪我的网站在 Google 上搜索的关键字

mysql - 从frm和ibd文件恢复表结构

python - 如何在Python中使用ODBC链接SQL数据库并进行SQL查询

javascript - LocalStorage 值未显示在其他 html 页面中

ajax - 使用 Java 脚本跟踪网页中是否发生 Ajax 请求或通过 Selenium Web 驱动程序拦截 XMLHttpRequest