我很困惑,我找不到正确的方法。我有一个问题,我将尝试通过以下示例使其变得简单。首先,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代码)。我很感激你的解释和你的解决方案,以澄清它。
答案 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)
如果您只想刷新页面,则不需要post
或ajax
。请改用此功能:
function test()
{
alert("Test1");
window.location.reload(true);
}
答案 3 :(得分:0)
你应该使用location.reload(true);没有加载的过载 缓存。
真正的param使它不能从缓存中读取
$.post
使用window.location.reload(true)
$(document).ready
包括$(document).ready
<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>
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);
}