[英]Using ajax to refresh a div content
我正在使用JavaScript處理表單提交,並且使用Ajax調用來刷新某個div僅“不是整個頁面” ,表單提交成功,但是div內部的值未刷新。 我已經嘗試了其他方法/解決方案來解決堆棧溢出問題,但是它們似乎都加載了整個頁面,或者div的內容在表單提交時被隱藏了。
ajax.js
$(document).ready(function () {
$('.ajaxform').submit(function (e) {
e.preventDefault(); // catch the form's submit event
$.ajax({ // create an AJAX call...
data: $(this).serialize(), // get the form data
type: "POST", // POST
dataType: 'html',
url: "info.php", // the file to call
cache: false,
success: function (response) { // on success..
$(".ld").load("info.php .ld"); //this hides the content of the div
// $('.ld').html(response);----This loads the entire page inside the div
}
});
return false; // cancel original event to prevent form submitting
});
});
info.php的
<html>
<head>
</head>
<body>
<?php
...................
foreach($stmt as $obj){
$id = $obj['id'];
$likes = $obj['like1'];
echo '<form action="" method="post" id="ajaxform" enctype="multipart/form-data">';
echo '<input type="hidden" name="lkcv[]" value="'.$id.'">';
echo '<input type="hidden" name="like" value="">';
echo '<input type="image" src="images/like.png" id="lksub" width="15"
value="som" height="15" style="float:right;position:relative;
margin-right:290px;"/><div class="ld">'.$likes.'</div>';
echo '</form>’;
echo '<div id="emailform"></div>';
}
?>
</body>
</html>
我試圖刷新div標簽中的變量“ $ likes”,而不刷新整個頁面,現在我當前的代碼在表單提交中隱藏了該變量。 我必須手動刷新以查看對“ $ likes”的任何更改。
您正在將XMLHTTPRequest發送給整個文檔,而不是發送給PHP的一部分(據我從問題中了解,這是您需要的PHP)。 此外,您會將請求發送到同一當前頁面info.php
,最好將PHP代碼分為兩部分(呈現初始形式的那一部分和旨在處理服務器端的那一部分)來分離問題。 )。
結果,AJAX將返回info.php
所有結果(靜態標記+生成的標記)並返回所有最終的HTML並將其加載到.ld
。
我建議創建兩個文件: form.php
和process-form.php
當form.php
重新整理的文檔ready
,您將執行AJAX調用,並將其發送到process-form
,它將在處理表單后返回所需的數據。
並且這應該在不刷新頁面的情況下起作用(使用AJAX的主要目的)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.