jQuery AJAX 调用以发布消息 - 错误 堆栈空间不足


jQuery AJAX call to post a message - ERROR Out of stack space

我正在尝试创建一个表单,您可以在其中填写发布消息的位置,并通过jQuery ajax将其打印到屏幕上。其余消息从数据库中获取并以相同的方式打印到屏幕上。我收到错误"堆栈空间不足",因为我是 100% 的初学者,所以我找不到问题。

下面是表单、从数据库中获取消息的代码,以及 jquery ajax 调用。

    <form class="guestbook">
        <label for="yourName" id="guestbook">Ditt namn:</label>
        <br />
        <input type="text" name="yourName" id="yourName" placeholder="Namn" required>
        <br />
        <textarea type="text" id="yourReview" name="yourReview"></textarea>
        <br />
        <input value="Skicka" type="button" id="send-btn" name="send-btn"></input>
    </form> 
    <!-- Här visas alla inlägg -->
    <div class="guestOutput">
        <?php
            $sql2 = "SELECT * FROM Messages ORDER BY ID ASC LIMIT 5";
            $result2 = mysqli_query($conn, $sql2) or die ('Kunde inte ta fram meddelanden');
            while($ms = mysqli_fetch_array($result2)){
                echo "<p class='allmsgs'>" . $ms['name'] . "<br>" . $ms['review'] . "<br> Postat: " . $ms['postad'] . "</p>";
            }
        ?>
    </div>
</div>
<script>
    $("#send-btn").click(function(){
        var name = $("#yourName").val();
        var msg = $("#yourReview").val();
        //Ajax call
        $.ajax({
            method:"POST",
            url: "../php/postmsg.php",
            data:{name: name, msg: msg}
        }).done(function() {
            $(".guestOutput").prepend($("<p class='allmsgs'>" + name + "<br>" + msg + "<br> Postat: Precis nu..." + "</p>").fadein(300));
            $("#yourName").val("");
            $("#yourReview").val("");
        });
    });
</script>

这是将信息存储在数据库中的php文件:

<?php
include('config.php');
if(isset($_POST['guestName']) && (isset($_POST['yourReview']))){
    $rvw = $_POST['yourReview'];
    $nm = $_POST['yourName'];
    $sql1 = "INSERT INTO Messages(name, review) VALUES ('$nm', '$rvw');";
    $result1 = mysqli_query($conn, $sql1) or die ("Något gick fel vid uppladdning av ditt meddelande, försök igen");
}
?>

我对 php 有更多的经验,所以我认为数据库功能没有任何问题。

顺便说一句。首先,我收到错误"函数上传消息未定义" - 所以首先我有一个名为uploadMessage的函数,然后在按钮上"点击"。我删除了它,而是尝试使用 $("#send-btn").click,这显然没有解决我的问题。但也许这可能与此有关?

我的问题现在在您的帮助下得到解决。谢谢,至于解决发布消息时不将相关信息打印到屏幕上的问题,我只是再次从表单中获取值,$("#yourName").val() 等。

使用 success 而不是done函数。

$.ajax({
  method: "xx",
  url: "xx",
  data: {xx},
  success: function(){
    //done function
  }
});

success回调选项的替代构造,即.done()方法将替换已弃用的 jqXHR.success() 方法。

尝试增加您所在计算机的 RAM 或重新启动计算机。堆栈与机器的内存有关,与jQuery无关。