如何在页面加载后让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参数是什么?我没有其他页面来编写脚本。只需简单地检查正在单击的提交按钮。这条路会是什么?我想这就是我有点迷路的地方。。。谢谢