Ajax 调用 PHP 文件

ajax calling to a php file

本文关键字:文件 PHP 调用 Ajax      更新时间:2023-09-26

当调用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 的参数中发送元素的值。您可以使用萤火虫或小提琴手来查看价值。

更多选择在这里 : http://api.jquery.com/jQuery.ajax/

AJAX

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

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

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

其次,仅在 ajax 调用完成后执行重新加载。实现此目的的一种更简单方法是将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();
}
});