无法使用$ .post刷新页面

时间:2014-10-12 18:53:36

标签: javascript php jquery

我很困惑,我找不到正确的方法。我有一个问题,我将尝试通过以下示例使其变得简单。首先,test.php的代码:

<html>
<head>    
<script type="text/javascript" src="js/jquery-1.11.1.js"></script>
<script src="test1.js"></script>
</head>

<body>

<input value="press" type="button" onclick="test()">
<script>
alert ("Home");
</script>

</body>
</html>

现在是test1.js代码:

function test()
{
alert("Test1");
$.post("test.php");
}

从我的角度来看,我期待三个警报窗口:Test1,Home和Test1,我认为test.php会在$ .post(“test.php”)被调用后刷新。我错过了什么?我的错是什么?

我想在具有更复杂代码的页面中做到这一点(即,在其自己的主体中的单击按钮之后使php页面刷新,这将首先执行一些JS代码)。我很感激你的解释和你的解决方案,以澄清它。

5 个答案:

答案 0 :(得分:1)

您只需向远程服务器发送请求,但无法使用响应。

答案 1 :(得分:1)

来自jquery文档:

  

这是一个简写的Ajax函数,相当于:

$.ajax({
type: "POST",
url: url,
data: data,
success: success,
dataType: dataType
});

所以你正在做的是发送一个ajax请求。这意味着页面不会被重新加载,并且服务器的结果将被发送回为post请求提供的回调函数,并且应该在那里进行处理。

要刷新页面,您应该提交如下表单:

$('#formid').submit(callbackFunction);

当然我猜这个解决方案你应该首先在你的html中添加一个表单......

答案 2 :(得分:0)

如果您只想刷新页面,则不需要postajax。请改用此功能:

function test()
{
    alert("Test1");
    window.location.reload(true); 
}

答案 3 :(得分:0)

  

你应该使用location.reload(true);没有加载的过载   缓存。

     

真正的param使它不能从缓存中读取

两个问题

  1. 无需$.post使用window.location.reload(true)
  2. $(document).ready包括$(document).ready
  3. test.php的

    <html>
    <head>    
    <script type="text/javascript" src="js/jquery-1.11.1.js"></script>
    <script src="test1.js"></script>
    </head>
    
    <body>
    
    <input value="press" type="button" onclick="test()">
    <script>
    alert ("Home");
    </script>
    
    </body>
    </html>
    

    test1.js

    function test()
    {
     alert("Test1");
     window.location.reload(true);
    }
    

    提醒的顺序为home - &gt; test1 - &gt; home

答案 4 :(得分:-1)

$.post("test.php");

只能将您的变量或数据或任何类型的请求发送到test.php。它没有从test.php获取所有代码并在您的页面中运行它。如果你想从test.php获得一些响应,请使用:

$.ajax("test.php"); 

此方法将请求或数据发送到test.php,然后还能够处理一些响应,即:

$.ajax(
    url: "test.php", 
    data: null,
    type:"post",
    success: function(result){
        alert(result);
    }