[英]Ajax jquery returns blank page
我有以下JavaScript代碼:
$(document).ready(function(){
$('#sel').change(function(){
$.ajax({
type: "POST",
url: "modules.php?name=TransProject_Management&file=index",
data: "&op=index_stat&stat="+$(this).val(),
cache: false,
success: function(data) {
//alert(data);
$("#ajax_results").html(data);
}
});
});
});
關於狀態更改,我需要刷新div而無需重新加載頁面。 但它返回空白頁。 如果我嘗試警告成功的結果,我會得到響應,並且我還會使用inspect元素進行檢查,這還可以。 問題是它返回空白頁。
我正在處理的文件與ajax中調用的文件相同(modules.php?name = TransProject_Management&file = index)。
HTML:
<body>
//...
<div id="ajax_results">
//.....
//somewhere here is the select option <select id="sel">......</select>
//.....
</div>
</body>
任何幫助,將不勝感激。
使用以下代碼返回您的響應html:
echo json_encode(array($your_response));
然后,在您的JavaScript中,您需要將數據引用為:
success: function(data) {
$("#ajax_results").html(data[0]);
}
因為它現在是一個數組。
嗯,乍一看代碼看起來不錯。 您是否嘗試過使用Chrome調試工具? 按F12並檢查“網絡”選項卡,這將向您顯示返回的內容。 您也可以在不使用警報的情況下進行調試,以便逐步查看屬性的確切含義。
只是想想,您可能需要在返回的數據中添加'd'。 無論如何,如果您按照我上面的建議進行操作,請在行上暫停一下並運行代碼,您將看到所需的內容。
this
在你的Ajax功能指jQuery XHR
對象,而不是$('#sel')
對象。 只需將其分配給ajax函數之前的變量,例如var sel = $(this)
然后在函數內部稍后使用它。 嘗試這個:
$('#sel').change(function(){
var sel = $(this);
$.ajax({
type: "POST",
url: "modules.php?name=TransProject_Management&file=index",
data: "&op=index_stat&stat="+sel.val(),
cache: false,
success: function(data) {
//alert(data);
$("#ajax_results").html(data);
}
});
});
});
根據問題下方的評論,您似乎正在使用相同的腳本來顯示頁面並調用javascript。 該腳本似乎返回了一個完整的html頁面,從<html>
標記開始。
一個頁面只能有一個<html>
標記,當您嘗試在另一個頁面的元素內轉儲完整的html頁面時,將導致無效的html和不可預測的結果。
解決方案是讓您的ajax腳本僅返回需要插入#ajax_results
的必要元素/ html,僅此而已。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.