Javascript 提交AJAX表单,重定向而不是在页面上处理

Javascript 提交AJAX表单,重定向而不是在页面上处理,javascript,php,jquery,ajax,forms,Javascript,Php,Jquery,Ajax,Forms,因此,当用户访问我的页面时,我有一个ajax函数,该函数获取数据库中的行数,并输出该行数(工作正常)。我还有一个表单,用户可以在其中提交一个单词。我想做的是,当用户向数据库提交一个单词时,AJAX将负责提交,然后运行一个函数来获取数据库中新的行数 这段代码重定向到submit.php页面,而不是在主页面上处理所有内容 AJAX $(document).ready(function() { display(); $('.add').on('submit', function (e)

因此,当用户访问我的页面时,我有一个ajax函数,该函数获取数据库中的行数,并输出该行数(工作正常)。我还有一个表单,用户可以在其中提交一个单词。我想做的是,当用户向数据库提交一个单词时,AJAX将负责提交,然后运行一个函数来获取数据库中新的行数

这段代码重定向到submit.php页面,而不是在主页面上处理所有内容

AJAX

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

   $('.add').on('submit', function (e) {
       e.preventDefault();
       $.ajax({
            type: 'post',
        url: 'submit.php',
        data: $('this').serialize(),
        success: function () {
            display();
        }
        });
    });


});

function display() {
    $(".container").load("ajax.php").hide().delay(500).fadeIn(1500);
}
HTML

<div class="container"></div>
    <form  action="submit.php" method="post">
        <input type="text" name="word">
        <input type="submit" class="add" name="add" value="add">
    </form>

ajax.php

<?php
        $conn = mysqli_connect('localhost', 'root', '', 'test') or die('error could not connect');
        $query = "SELECT * FROM test";
        $result = mysqli_query($conn, $query) or die ('error could not query');

        $num = mysqli_num_rows($result);

        echo '<h1>'.$num.'</h1>';

?>
<?php
    if(isset($_POST['add'])) {
        //Connect
        $word = $_POST['word'];

        $conn = mysqli_connect('localhost', 'root', '', 'test') or die('error could not connect');
        $query  = "INSERT INTO test VALUES(0, '$word')";
        mysqli_query($conn, $query) or die('error could not query');

    }
?>

Submit.php

<?php
        $conn = mysqli_connect('localhost', 'root', '', 'test') or die('error could not connect');
        $query = "SELECT * FROM test";
        $result = mysqli_query($conn, $query) or die ('error could not query');

        $num = mysqli_num_rows($result);

        echo '<h1>'.$num.'</h1>';

?>
<?php
    if(isset($_POST['add'])) {
        //Connect
        $word = $_POST['word'];

        $conn = mysqli_connect('localhost', 'root', '', 'test') or die('error could not connect');
        $query  = "INSERT INTO test VALUES(0, '$word')";
        mysqli_query($conn, $query) or die('error could not query');

    }
?>

您应该将
提交
事件挂接到
表单
,而不是提交
按钮


按钮没有提交事件,这就是您的按钮没有连接的原因。

您应该将
提交
事件连接到
表单
,而不是提交
按钮


按钮没有提交事件,这就是您的按钮没有连接的原因。

您应该将
提交
事件连接到
表单
,而不是提交
按钮


按钮没有提交事件,这就是您的按钮没有连接的原因。

您应该将
提交
事件连接到
表单
,而不是提交
按钮

按钮没有提交事件,这就是您的按钮没有连接的原因。

$('this').serialize()

应该是:

$(this.serialize()
$('this')。序列化()

应该是:

$(this.serialize()
$('this')。序列化()

应该是:

$(this.serialize()
$('this')。序列化()

应该是:


$(this.serialize()

因此我将class=“add”移动到表单中,并将其从按钮上取下,它现在不会重定向到提交页面,但不会提交到数据库。我可以看出ajax正在工作,因为它调用display()并在数字中淡出(但不更新)?按F-12,打开调试器中的网络面板,查看您和服务器之间的对话。你有一个次要的问题,可能是在PHP方面。所以我更改了一些PHP,你是对的,我的一些错误检查有一个错误。。。让它只使用一个基本的插入查询。因此,我将class=“add”移动到表单中,并将其从按钮上取下,它现在不会重定向到提交页面,但不会提交到数据库。我可以看出ajax正在工作,因为它调用display()并在数字中淡出(但不更新)?按F-12,打开调试器中的网络面板,查看您和服务器之间的对话。你有一个次要的问题,可能是在PHP方面。所以我更改了一些PHP,你是对的,我的一些错误检查有一个错误。。。让它只使用一个基本的插入查询。因此,我将class=“add”移动到表单中,并将其从按钮上取下,它现在不会重定向到提交页面,但不会提交到数据库。我可以看出ajax正在工作,因为它调用display()并在数字中淡出(但不更新)?按F-12,打开调试器中的网络面板,查看您和服务器之间的对话。你有一个次要的问题,可能是在PHP方面。所以我更改了一些PHP,你是对的,我的一些错误检查有一个错误。。。让它只使用一个基本的插入查询。因此,我将class=“add”移动到表单中,并将其从按钮上取下,它现在不会重定向到提交页面,但不会提交到数据库。我可以看出ajax正在工作,因为它调用display()并在数字中淡出(但不更新)?按F-12,打开调试器中的网络面板,查看您和服务器之间的对话。你有一个次要的问题,可能是在PHP方面。所以我更改了一些PHP,你是对的,我的一些错误检查有一个错误。。。只需要一个基本的插入查询就可以了