ajax调用php文件

时间:2012-04-17 23:51:28

标签: php javascript ajax jquery

我试图在调用javascript函数时运行一个php文件然后重新加载页面,它重新加载页面但是php文件没有被执行。

function changeR() 
{
    $.ajax({ url: 'win.php?id=1' });
    window.location.reload()
}

4 个答案:

答案 0 :(得分:4)

ajax调用完成后重新加载。您可以使用成功事件。

function changeR() 
{
  $.ajax({ url: 'win.php?id=1' ,
            success: function(data) {
                       window.location.reload()
                    }
        }); 
}

请记住,如果ajax调用成功,将执行成功事件,如果您想执行某些代码,无论成功或错误,您可以考虑[complete][1]done < / p>

或者,您可以尝试使用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的参数中发送element的值。你可以使用萤火虫或小提琴手看看它的价值。

此处有更多选项:http://api.jquery.com/jQuery.ajax/

答案 1 :(得分:1)

AJAX调用是异步的,这意味着您在AJAX请求完成之前执行window.location.reload()。相反,等到AJAX请求完成后,然后重新加载。

function changeR() 
{
  $.ajax({
    url: 'win.php?id=1'
  }).done(function() {
    window.location.reload()
  });
}

答案 2 :(得分:0)

首先确保win.php脚本中没有可能阻止其成功执行的错误。

其次,仅在ajax调用完成后执行重新加载。更简单的方法是将asyc设置为false。这样调用是同步完成的,这意味着它将在继续之前等待其执行完成。

function changeR() 
{
    $.ajax({ url: 'win.php?id=1', async: false });
    window.location.reload()
}

答案 3 :(得分:0)

尝试进入'changeR'功能:

$.ajax({
type: "GET",
url: "win.php",
data: "id=1",
success: function(msg){
  window.location.reload();
}
});