Javascript 阿贾克斯赢了';在不刷新页面的情况下,无法加载新页面内容

Javascript 阿贾克斯赢了';在不刷新页面的情况下,无法加载新页面内容,javascript,jquery,ajax,Javascript,Jquery,Ajax,我执行了一个AJAX请求,将内容加载到我的页面中。以下是我为此请求创建的函数: function displayForums() { var session = "<?php echo $_SESSION['id'] ?>"; $.ajax({ url: 'includes/threads/display_forums.php', data: 'POST', data:

我执行了一个AJAX请求,将内容加载到我的页面中。以下是我为此请求创建的函数:

    function displayForums() {

        var session = "<?php echo $_SESSION['id'] ?>";

        $.ajax({
            url: 'includes/threads/display_forums.php',
            data: 'POST',
            data: {session: session},
            success: function(data) {
                console.log("display successful");
                $(data).appendTo("#forums-container");  
            }
        });
    }
最后,我有一个AJAX调用,它将表单中的用户输入提交到数据库中

    $("#start-thread-form").on("submit", function(e) {

        e.preventDefault();

        var forum_title = $("#start-thread-form input").val();
        var forum_message = $("#start-thread-form textarea").val();
        var id = "<?php echo $_SESSION['id'] ?>";

        $.ajax({
            url: 'includes/threads/insert_forums.php',
            type: 'POST',
            data: {forum_title: forum_title, forum_message: forum_message, id: id},
            success: function(data) {
                console.log(data);
                $(".success-msg").append("Thread created successfully" + "<br>").show();
                setTimeout(function() {
                    $(".success-msg").hide();
                    $(".success-msg").text('');
                }, 2000);
                $('input[type="text"],textarea').val('');
                displayForums();
            }, 
            error: function(requestObject, error, errorThrown) {
                console.log(error);
                console.log(errorThrown);
            }
        });
    });
$(“#开始线程形式”)。在(“提交”上,函数(e){
e、 预防默认值();
var forum_title=$(“#启动线程表单输入”).val();
var forum_message=$(“#启动线程表单textarea”).val();
var id=“”;
$.ajax({
url:'includes/threads/insert_forums.php',
键入:“POST”,
数据:{论坛标题:论坛标题,论坛消息:论坛消息,id:id},
成功:功能(数据){
控制台日志(数据);
$(“.success msg”).append(“线程已成功创建”+”
”).show(); setTimeout(函数(){ $(“.success msg”).hide(); $(“.success msg”).text(“”); }, 2000); $('input[type=“text”],textarea').val(“”); 显示论坛(); }, 错误:函数(请求对象、错误、错误抛出){ console.log(错误); console.log(错误抛出); } }); });
问题是,当将数据插入数据库的AJAX调用完成时,原始AJAX调用不会将新数据加载到页面中,除非我刷新页面。我尝试将
displayForums()
函数放在success函数中,但没有成功。如何调整AJAX调用以加载新插入的数据而不刷新页面

$(document).ready(displayForums());
这是错误的,应该是:

$(document).ready(function() { displayForums() });

当表单的提交事件触发时,运行JavaScript

表单提交的默认行为是向
操作发出HTTP请求,并将响应作为新页面加载

如果您不希望表单提交,则必须停止它

$("#start-thread-form").on("submit", function(event) {
    event.preventDefault();

AJAX是异步的,因此如果要在第一个代码段的基础上运行第二个代码段,则必须在另一个代码段中调用AJAX。鉴于我正确理解了您的问题,您需要通过再次调用第一个代码段来创建新的AJAX请求。@Javan如何再次调用第一个代码段?@CarsonD将第一个AJAX请求包装到函数中。在页面加载时调用函数,该函数获取论坛的第一个范围。单击之后,假设单击某个对象会触发第二个ajax请求(您还没有演示这一点,所以我假设),您将在第二个ajax请求的成功回调中调用该函数。@提示我将第一个ajax调用的函数放入第二个ajax调用的成功函数中,但仍然没有新数据。你想让我编辑我的帖子以显示我刚刚创建的代码吗?我尝试了这个,但它没有解决问题。但很高兴知道。我实际上在我提供的代码中包含了这一点,并将其添加到了代码中。我用这种方式格式化了它,现在它似乎起作用了。谢谢但是现在有一个新问题:已经从第一个函数加载的注释正在重复,因为我只是用相同的信息复制同一个函数。@CarsonD-那么您可能想在追加新的注释之前删除现有的注释。
$("#start-thread-form").on("submit", function(event) {
    event.preventDefault();