Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 第二次单击后从数据库下载数据_Php_Mysql_Ajax - Fatal编程技术网

Php 第二次单击后从数据库下载数据

Php 第二次单击后从数据库下载数据,php,mysql,ajax,Php,Mysql,Ajax,为什么在第二次单击后显示数据 也许我没有正确地执行ajax请求。我想将数据从数据库输出到页面,并在添加后进行更新 你能找到问题所在吗 main.js dataconnect.php bdconnect.php 问题是两个ajax调用是同时进行的,当dataconnect调用完成时,数据还不在服务器中 ajax调用是异步运行的,因此即使是dataconnect调用也会稍后在代码中写入bdconnect调用尚未完成。直到执行done回调 将dataconnect调用放在done回调中,您应该会看

为什么在第二次单击后显示数据

也许我没有正确地执行ajax请求。我想将数据从数据库输出到页面,并在添加后进行更新

你能找到问题所在吗

main.js

dataconnect.php


bdconnect.php


问题是两个ajax调用是同时进行的,当
dataconnect
调用完成时,数据还不在服务器中

ajax调用是异步运行的,因此即使是
dataconnect
调用也会稍后在代码中写入
bdconnect
调用尚未完成。直到执行
done
回调

dataconnect
调用放在
done
回调中,您应该会看到数据在添加任何内容后更新

为了改进代码,您可以定义一个函数:

function refreshData() {
    $.ajax({
        url: 'dataconnect.php',
        type: "POST",
        success: function (data) {
            $(".rows").html(data);
        }
    });
}
并使用
$(refreshData)
每次调用它,而不是重复document.ready中的所有代码

整个javascript代码将是:

function refreshData() {
    $.ajax({
        url: 'dataconnect.php',
        type: "POST",
        success: function (data) {
            $(".rows").html(data);
        }
    });
}

$(document).ready(function () {
    $(refreshData);

    $("button.btnSubmit").on("click", function () {
        let textsval = $(".inputs_text").val();
        let imgsval = $(".inputs_img").val();

        $.ajax({
            url: 'bdconnect.php',
            type: "POST",
            data: { textss: textsval, imgg: imgsval },
        }).done(function () {
            $(refreshData);
        });
        $(".inputs_text").val("");
        $(".inputs_img").val("");
    });
});

第一次单击后,数据进入数据库,但不会以html显示。第二次单击后,将显示。
<?php

$dbhost = "localhost";
$dbname = "databd";
$username = "root";
$userpass = "";
$charset = "utf8";
$options = [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION];

$data = [
    "textss" => trim($_POST["textss"]),
    "imgg" => trim($_POST["imgg"]),
];

$db = new PDO("mysql:host=$dbhost;dbname = $dbname;charset=$charset", $username, $userpass, $options);
if (!empty(trim($_POST["textss"])) && !empty(trim($_POST["imgg"]))) {
    $query = "INSERT INTO `databd`.`infos`(texts,img) VALUES (:textss, :imgg)";
    $statement = $db->prepare($query);
    $result = $statement->execute($data);
};
function refreshData() {
    $.ajax({
        url: 'dataconnect.php',
        type: "POST",
        success: function (data) {
            $(".rows").html(data);
        }
    });
}
function refreshData() {
    $.ajax({
        url: 'dataconnect.php',
        type: "POST",
        success: function (data) {
            $(".rows").html(data);
        }
    });
}

$(document).ready(function () {
    $(refreshData);

    $("button.btnSubmit").on("click", function () {
        let textsval = $(".inputs_text").val();
        let imgsval = $(".inputs_img").val();

        $.ajax({
            url: 'bdconnect.php',
            type: "POST",
            data: { textss: textsval, imgg: imgsval },
        }).done(function () {
            $(refreshData);
        });
        $(".inputs_text").val("");
        $(".inputs_img").val("");
    });
});