我试图在调用 javascript 函数然后重新加载页面时运行 php 文件,它会重新加载页面但 php 文件没有被执行。
function changeR()
{
$.ajax({ url: 'win.php?id=1' });
window.location.reload()
}
我试图在调用 javascript 函数然后重新加载页面时运行 php 文件,它会重新加载页面但 php 文件没有被执行。
function changeR()
{
$.ajax({ url: 'win.php?id=1' });
window.location.reload()
}
ajax 调用完成后重新加载。您可以使用成功事件。
function changeR()
{
$.ajax({ url: 'win.php?id=1' ,
success: function(data) {
window.location.reload()
}
});
}
请记住,如果ajax调用成功,将执行成功事件,如果您想执行一些代码,无论是成功还是错误,您都可以考虑,[complete][1]
或者done
或者,您可以尝试window.location.href=window.location.href
代替window.location.reload()
通常人们使用 ajax 进行部分页面更新而无需重新加载页面。您确定要在 ajax 调用后重新加载整个页面吗?
编辑:根据评论
如果你想通过这个 ajax 调用传递你的 php 变量值,你可以这样做
将值设置为某个 html 元素(例如:id 为 txtID 的隐藏元素)
//Reading the value of an html element with id `txtId`
var val=$("#txtID").val();
$.ajax({ url: 'win.php' ,
data: { id: val },
success: function(data) {
window.location.reload()
}
});
在这里,您将在名为 的参数中发送元素的值id
。您可以使用 firebug 或 fiddler 查看正在发生的值。
AJAX 调用是异步的,这意味着您window.location.reload()
在 AJAX 请求完成之前执行。相反,等到 AJAX 请求完成,然后重新加载。
function changeR()
{
$.ajax({
url: 'win.php?id=1'
}).done(function() {
window.location.reload()
});
}
首先确保您的win.php
脚本中没有可能阻止它成功执行的错误。
其次,只有在ajax调用完成后才执行reload。完成此操作的更简单方法是将asyc
设置设置为false
。这样调用是同步完成的,这意味着它将等待其执行完成后再继续。
function changeR()
{
$.ajax({ url: 'win.php?id=1', async: false });
window.location.reload()
}
在你的'changeR'函数中试试这个:
$.ajax({
type: "GET",
url: "win.php",
data: "id=1",
success: function(msg){
window.location.reload();
}
});