完整更新页面时,jQuery OnClick运行外部页面

时间:2014-01-19 16:59:31

标签: php jquery ajax onclick

我知道可以使用jQuery加载/运行外部网页。在过去,我使用过类似的东西:

$.ajax({ url : 'test.php'})

我现在要做的是当用户点击“GO”按钮调用外部PHP时。当它正在运行时,主页面应该显示“请等待”,一旦外部脚本完成,主页面应该更新为显示已完成。

我正在调用的php页面实际上正在运行一个shell脚本,但我没有得到任何反馈。然而,页面运行并完成正常。

无论如何,我可以判断它是否仍在运行,然后更新主页?

如果有人能指出我正确的方向,我将不胜感激。

谢谢

根据以下答案更新。

<script type="text/javascript">
$(document).ready(function() {

$("#update").click(function() {
$("#status").html("<p>Please Wait!</p>");
$.ajax({ url : 'test.php' }).done(function() { $("#status").html("Completed"); });
    });

});
</script>

<span id="status"><span>
<input type="button" id="update" value="Check for Update" />

2 个答案:

答案 0 :(得分:1)

$.ajax({
  url:"test.php",
  beforeSend: function(){
    //show the loading!
  },
  success:function(){
    //hide the loading
  }
})

您还应该确保服务器端脚本正确运行!和状态确定响应!

答案 1 :(得分:1)

让我们举一个例子:

你有这个HTML:

<script type="text/javascript">
function updatecheck()
{
//Shows Please Wait in Status
$("#status").html("<p>Please Wait!</p>");
$.ajax({ url : 'test.php'})
.done(function() {
//Hides Status
$("#status").html("");
}
</script>

<span id="status"><span>
<input type="button" onclick="updatecheck()" value="Check for Update" />
当ajax请求完成时,

.done将被触发,它将隐藏值。

如果您想要显示已完成而不是隐藏值,请使用:

$("#status").html("Completed");