好的,所以我尽可能多地搜索网络,但我找不到解决问题的方法。我也输入了问题并搜索了答案,因为我看到了与我类似的问题。没帮助。我尝试了许多解决方案。
好吧,我有一个索引页面,它加载includes/data.php
从数据库加载数据并回显.js格式,然后由函数加载并在页面上显示数据,所以我在我的索引末尾.php像这样:
<script type="text/javascript" src="includes/data.php"></script>
在同一索引页上,我有一个将数据插入数据库的表单。如果您刷新页面,我将看到刷新的includes/data.php
以及我刚刚输入的新数据。
我正在尝试实现 AJAX,以便当我单击按钮时将数据插入数据库(已经实现了这一点)并刷新includes/data.php
和index.php
的内容,以便它立即显示数据而无需刷新index.php
。这是我的 AJAX 代码:
$('#addtocal').submit( function() {
$.ajax({
url : $(this).attr('action'),
type : $(this).attr('method'),
data : $(this).serialize(),
success : function( data ) {
// This is the part where I am stuck.
},
error : function(){
$(".error").fadeIn(2000);
$(".error").fadeOut(2000);
}
});
return false;
});
值得一提的是,#calendar
是主要的jquery函数根据来自/includes/data.php
的信息加载html内容的地方。提前感谢您提供的任何帮助,如果您需要我提供的任何其他信息,请告诉我,以便更好地帮助我。
附言我看到许多人建议使用 .load() 从includes/data.php
加载内容,但这在我的情况下不起作用,因为来自includes/data.php
的内容需要服务于其他 jquery 函数,该函数动态创建 html 并将其放置在#calendar
我让它工作了。我所做的是我在 $.ajax 中坚持附加 $.ajax 并在完成后再次调用使用 /includes/data.php
的 jquery
所以代码将是这样的:
$('#addtocal').submit( function() {
$.ajax({
url : $(this).attr('action'),
type : $(this).attr('method'),
data : $(this).serialize(),
success : function( data ) {
$.ajax({
url: "../includes/data.php",
dataType: "script",
cache: true
}).done(function() {
// Here I called other jquery function that uses ../includes/data.php
});
},
error : function(){
$(".error").fadeIn(2000);
$(".error").fadeOut(2000);
}
});
return false;
});
无论如何,感谢您的帮助@Half Crazed 给了我一个线索,所以我得到了 $.getScript 函数并看到了再次调用.js的方法,所以我尝试了一下,它奏效了。