Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在页面加载后让PHP条件继续检查_Php_Html - Fatal编程技术网

如何在页面加载后让PHP条件继续检查

如何在页面加载后让PHP条件继续检查,php,html,Php,Html,我有一个搜索框,当用户在结果页面加载时点击提交按钮后,我想显示某种进度指示器。我能找到的最简单的方法是: while ( $something == true ) { // Echo an extra dot, and flush the buffers // to ensure it gets displayed. echo ' .'; flush(); // Now sleep for 1 second and check again: sleep(1); } 我

我有一个搜索框,当用户在结果页面加载时点击提交按钮后,我想显示某种进度指示器。我能找到的最简单的方法是:

while ( $something == true ) {
  // Echo an extra dot, and flush the buffers
  // to ensure it gets displayed.
  echo ' .';
  flush();

  // Now sleep for 1 second and check again:
  sleep(1);
}
我认为$something应该只是用户是否提交了搜索表单。问题是上面的PHP代码不知道这一点,因为页面已经完成加载


如何让PHP仅在用户提交搜索表单后执行?

您不能。为此,您需要使用JavaScript(可能还需要使用AJAX与服务器端代码交互)

您不能这样做。为此,您需要使用JavaScript(可能还需要使用AJAX与服务器端代码交互)

PHP是一种服务器端语言,因此它无法看到浏览器中发生了什么。我将只响应浏览器发出的请求。有两种方法可以实现我认为你所追求的目标

ajax方式:
要获得某种实时反馈,您需要一种客户端语言,即Javascript。我建议您看看,一个javascript库,它相当容易理解。更具体地说,您可能需要方法和事件

PHP方式:
您还可以让表单提交到搜索表单所在的php页面,然后通过检查表单变量是否存在来检测表单是否已提交。大概是这样的:

if (array_key_exists('search', $_REQUEST) {
 // the form has been submitted
}
else  {
 // the form is not yet submitted
}

这是假设表单中的搜索框的名称为“search”

PHP是一种服务器端语言,因此它无法看到浏览器中发生了什么。我将只响应浏览器发出的请求。有两种方法可以实现我认为你所追求的目标

ajax方式:
要获得某种实时反馈,您需要一种客户端语言,即Javascript。我建议您看看,一个javascript库,它相当容易理解。更具体地说,您可能需要方法和事件

PHP方式:
您还可以让表单提交到搜索表单所在的php页面,然后通过检查表单变量是否存在来检测表单是否已提交。大概是这样的:

if (array_key_exists('search', $_REQUEST) {
 // the form has been submitted
}
else  {
 // the form is not yet submitted
}
这是假设表单中的搜索框使用jQuery命名为“search”:

$('#submit').click(function(e)){
    e.preventDefault();
    $.ajax({
        type: "POST",
        url: "path/to/php/action",
        dataType: "json"
    }).done(function(data){
         while(data.action == 'waiting'){
             $('.somePageClass').html('<p>...</p>');
         }else{
             $('.somePageClass').html('your results');
         }
    });
});
$(“#提交”)。单击(功能(e)){
e、 预防默认值();
$.ajax({
类型:“POST”,
url:“path/to/php/action”,
数据类型:“json”
}).完成(功能(数据){
while(data.action==“等待”){
$('.somePageClass').html('..

'); }否则{ $('.somePageClass').html(“您的结果”); } }); });
类似于使用ajax调用php函数,您的php函数必须检查您的等待或完成,并返回data.action

这可能不完全正确,但这是一种尝试(至少是在正确的方向上)。

使用jQuery:

$('#submit').click(function(e)){
    e.preventDefault();
    $.ajax({
        type: "POST",
        url: "path/to/php/action",
        dataType: "json"
    }).done(function(data){
         while(data.action == 'waiting'){
             $('.somePageClass').html('<p>...</p>');
         }else{
             $('.somePageClass').html('your results');
         }
    });
});
$(“#提交”)。单击(功能(e)){
e、 预防默认值();
$.ajax({
类型:“POST”,
url:“path/to/php/action”,
数据类型:“json”
}).完成(功能(数据){
while(data.action==“等待”){
$('.somePageClass').html('..

'); }否则{ $('.somePageClass').html(“您的结果”); } }); });
类似于使用ajax调用php函数,您的php函数必须检查您的等待或完成,并返回data.action


这可能不完全正确,但这是一种尝试(至少是在正确的方向上)。

URL参数是什么?我没有其他页面来编写脚本。只需简单地检查正在单击的提交按钮。这条路会是什么?我想这就是我有点迷路的地方。。。谢谢URL参数是什么?我没有其他页面来编写脚本。只需简单地检查正在单击的提交按钮。这条路会是什么?我想这就是我有点迷路的地方。。。谢谢