我試圖創建一個表單,您可以填寫您發佈消息的位置,並通過jQuery ajax將其打印到屏幕上。其餘的消息從數據庫中獲取並以相同的方式打印到屏幕上。林得到錯誤'堆棧空間',因爲我是一個100%的初學者,我找不到問題。jQuery AJAX調用發佈消息 - 錯誤堆棧空間不足
這裏是表單,從數據庫中獲取消息的代碼,以及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更多的經驗,所以我不認爲有與數據庫功能的任何問題。
順便說一句。首先,我得到了錯誤'function uploadMessage is not defined' - 所以首先我有一個名爲uploadMessage的函數,然後是按鈕上的'onclick'。我刪除了這個,而是嘗試使用$(「#send-btn」)。點擊,這顯然沒有解決我的問題。但也許它可能與此有關?
我的問題現在可以在您的幫助下解決。謝謝,並且爲了解決郵件發佈時沒有將郵件信息打印到屏幕上的問題,我剛剛從表單中獲取了$(「#yourName」)。val()等值。
'data:{name:yourName,msg:yourReview}'應該是'data:{name:name,msg:msg}' –
發生錯誤的位置在哪裏?我沒有看到任何可能導致這種情況的代碼。 –
好@devlincarnate,錯誤發生在控制檯中,一旦我嘗試'發送'一個新的消息存儲在分貝和打印到屏幕 –