Javascript 重新运行Ajax脚本?
如果我有一个像下面这样的脚本,它运行来加载一个表,其中包含从外部PHP文件注入到该表中的数据,并将其加载到页面上Javascript 重新运行Ajax脚本?,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,如果我有一个像下面这样的脚本,它运行来加载一个表,其中包含从外部PHP文件注入到该表中的数据,并将其加载到页面上 <script> $(document).ready(function(){ var response = ''; $.ajax({ type: "GET", url: "Records.php", success : function(text)
<script>
$(document).ready(function(){
var response = '';
$.ajax({ type: "GET",
url: "Records.php",
success : function(text)
{
response = text;
}
});
alert(response);
});
</script>
$(文档).ready(函数(){
var响应=“”;
$.ajax({type:“GET”,
url:“Records.php”,
成功:函数(文本)
{
响应=文本;
}
});
警报(响应);
});
下面还有一个脚本,用户可以在其中向数据库添加记录
<script id="sosurce" language="javascript" type="text/javascript">
$("#newitemadd").click(function(){
$('#New').modal('show');
$("#insertResults").click(function(){
var getname = $('#getname').val();
var getquant = $('#getquant').val();
var getprice = $('#getprice').val();
var getdesc = $('#getdesc').val();
$.ajax({
url: 'api2.php',
data: "name="+getname+"&quantity="+getquant+"&price="+getprice+"&description="+getdesc,
success: function(data)
{ $('#New').modal('hide');
$("#success").html(data);
$('#success').slideDown().delay(3000).slideUp().reload
},
error: function() {
$("#failure").alert('show');
}
});
});
});
</script>
$(“#newitemadd”)。单击(函数(){
$('新').modal('显示');
$(“#insertResults”)。单击(函数(){
var getname=$('#getname').val();
var getquant=$('#getquant').val();
var getprice=$('#getprice').val();
var getdesc=$('#getdesc').val();
$.ajax({
url:'api2.php',
数据:“name=“+getname+”&quantity=“+getquant+”&price=“+getprice+”&description=“+getdesc,
成功:功能(数据)
{$('#New').modal('hide');
$(“#success”).html(数据);
$(“#成功”).slideDown().delay(3000.slideUp().reload
},
错误:函数(){
$(“#失败”).alert('show');
}
});
});
});
它完全按照预期工作,但是,如何让第一个脚本重新运行,以便刷新插入到页面上的表以显示刚刚添加的新结果?将第一个代码移动到一个函数中,如
<script>
$(document).ready(LoadData);
function LoadData() {
var response = '';
$.ajax({
type: "GET",
url: "Records.php",
success : function(text) {
response = text;
}
});
alert(response);
};
</script>
$(文档).ready(加载数据);
函数LoadData(){
var响应=“”;
$.ajax({
键入:“获取”,
url:“Records.php”,
成功:函数(文本){
响应=文本;
}
});
警报(响应);
};
并从其他函数调用此函数,示例在成功时执行此操作
<script id="sosurce" language="javascript" type="text/javascript">
$("#newitemadd").click(function() {
$('#New').modal('show');
$("#insertResults").click(function() {
var getname = $('#getname').val(),
getquant = $('#getquant').val(),
getprice = $('#getprice').val(),
getdesc = $('#getdesc').val();
$.ajax({
url: 'api2.php',
data:
"name="+getname+"&quantity="+getquant+"&price="+getprice+"&description="+getdesc,
success: function(data) {
$('#New').modal('hide');
$("#success").html(data);
$('#success').slideDown().delay(3000).slideUp().reload
// Call load data again to refresh the table
LoadData();
},
error: function() {
$("#failure").alert('show');
}
});
});
});
</script>
$(“#newitemadd”)。单击(函数(){
$('新').modal('显示');
$(“#insertResults”)。单击(函数(){
var getname=$('#getname').val(),
getquant=$('#getquant').val(),
getprice=$('#getprice').val(),
getdesc=$('#getdesc').val();
$.ajax({
url:'api2.php',
数据:
“name=“+getname+”&quantity=“+getquant+”&price=“+getprice+”&description=“+getdesc,
成功:函数(数据){
$('#New').modal('hide');
$(“#success”).html(数据);
$(“#成功”).slideDown().delay(3000.slideUp().reload
//再次调用load data以刷新表
LoadData();
},
错误:函数(){
$(“#失败”).alert('show');
}
});
});
});
您可以这样做
<script>
var renderTable = function() {
var response = '';
$.ajax({ type: "GET",
url: "Records.php",
success : function(text)
{
response = text;
}
});
alert(response);
}
// Call function onload
jQuery(function($){
renderTable();
$(".refreshBtn").click(function(){
renderTable();
})
});
</script>
var renderTable=函数(){
var响应=“”;
$.ajax({type:“GET”,
url:“Records.php”,
成功:函数(文本)
{
响应=文本;
}
});
警报(响应);
}
//调用函数onload
jQuery(函数($){
可渲染();
$(“.refreshBtn”)。单击(函数(){
可渲染();
})
});
您可以使用ajax调用生成一个函数,并在更新完成后再次调用它done@user2355891你必须小心,这很容易导致一个无限的调用循环,而没有一个标志来控制它。有人能提供一个例子,说明哪种方法是实现我的要求的最好方法,而不存在调用循环之类的问题吗?另外,请提供答案,以便我可以接受。