我想知道如果没有javascript可以更新回声吗?
例如
<?php
for ($i = 1; $i < 100; $i++){
echo $i;
}
?>
但是它只会在不添加其他行的情况下更新数字,而另一行直到100.这是可能的,还是仅使用javascript就可以实现此目的。
我需要输出一个计数器来了解目前正在处理多少文件,如
100页中的45页
答案 0 :(得分:2)
没有。客户端(例如JavaScript)。因为如果你想在没有页面重新加载的情况下实现这一点,那么如果PHP在浏览器发出请求时启动,那么PHP将如何参与?
答案 1 :(得分:1)
PHP是一种服务器端语言。请求并执行脚本,然后发送给客户端。
JavaScript仅在客户端执行。这意味着它可以向PHP脚本发送请求,但始终会返回脚本的结果。
唯一的选择是AJAX requests。基本上,您编写一个PHP脚本,一次移动一个文件。 JavaScript处理从1到100的循环,并使用不同的参数向PHP脚本发送100个同步请求。然后,您可以跟踪进度并更新HTML页面上的DOM元素。
jQuery has a nice .ajax() function可以帮助您入门。以下是一个简单的例子。它不会立即起作用,但你可以在它上面使它工作。
<强> PHP 强>
<?php
$file = $_POST['file'];
$destination = $_POST['destination'];
// Move the stuff!
?>
<强>的JavaScript 强>
var files = ['test.txt', 'test2.txt' /* ... */], /* Your list of files... */
destination = '/path/to/send/to/the/php/script/';
for(var i = 0; i < files.length; i ++){
$.ajax({
async: false,
url: 'script_to_move_files.php',
data: { file: files[i], destination: destination },
success: function(){
/* File moved! Update a progress bar or something... */
},
error: function(){
/* File wasn't moved successfully... */
}
});
}