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