我有这个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而不重新加载页面。但它返回空白页面。如果我尝试通知成功的结果,我得到响应,我也检查了检查元素,它的确定。问题是它返回空白页。
我正在处理的文件与我在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>
任何帮助,都将非常感激。
答案 0 :(得分:1)
使用以下代码返回您的回复html:
echo json_encode(array($your_response));
然后在您的javascript中,您需要将数据引用为:
success: function(data) {
$("#ajax_results").html(data[0]);
}
因为它现在是一个数组。
答案 1 :(得分:0)
想一想,您可能需要在返回的数据中添加“d”。无论如何,如果你按照我上面的建议做的话,在线上放一个暂停,然后运行代码就会看到你需要的东西。
答案 2 :(得分:0)
this
引用jQuery XHR
对象,而不是$('#sel')
对象。只需在像var sel = $(this)
之类的ajax函数之前将它分配给变量,然后在函数内部使用它。试试这个:
$('#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);
}
});
});
});
答案 3 :(得分:0)
根据您在问题下方的评论,您似乎使用相同的脚本来显示您的网页并使用javascript进行调用。此脚本似乎返回一个完整的html页面,从<html>
标记开始。
页面只能有一个<html>
标记,当您尝试在另一个页面中的元素内转储完整的html页面时,这将导致无效的HTML和不可预测的结果。
解决方案是让你的ajax脚本只返回需要插入#ajax_results
的必要元素/ html,仅此而已。