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

时间:2016-03-14 21:22:38

标签: javascript php jquery ajax

我正在尝试创建一个表单,您可以填写发布消息的位置,然后通过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>

HERE是将文件存储在数据库中的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有更多经验所以我不认为数据库功能有任何问题。

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

我的问题现在在你的帮助下解决了。谢谢,并且为了解决在发布消息时没有将相关信息打印到屏幕的问题,我只是再次从表单中获取值,$(&#34; #yourName&#34;)。val()等

2 个答案:

答案 0 :(得分:0)

使用成功而不是完成功能。

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

成功回调选项的替代构造,.done()   方法替换了不推荐使用的jqXHR.success()方法。

答案 1 :(得分:0)

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