我想知道是否可以在没有 javascript 的情况下更新 echo ?
例如
<?php
for ($i = 1; $i < 100; $i++){
echo $i;
}
?>
但它只会在不添加另一行的情况下更新数字,直到 100 为止。这是可能的还是只有使用 javascript 才能实现。
我需要输出一个计数器来了解目前正在处理多少文件,例如
45 页,共 100 页
我想知道是否可以在没有 javascript 的情况下更新 echo ?
例如
<?php
for ($i = 1; $i < 100; $i++){
echo $i;
}
?>
但它只会在不添加另一行的情况下更新数字,直到 100 为止。这是可能的还是只有使用 javascript 才能实现。
我需要输出一个计数器来了解目前正在处理多少文件,例如
45 页,共 100 页
没有。仅限客户端(例如 JavaScript)。因为如果你想在不重新加载页面的情况下实现这一点,那么如果 PHP 在来自浏览器的请求到来时启动,那么如何涉及 PHP?
PHP 是一种服务器端语言。该脚本被请求、执行,然后发送到客户端。
JavaScript 仅在客户端执行。这意味着它可以向 PHP 脚本发送请求,但总是会返回脚本的结果。
唯一的选择是AJAX 请求。基本上,您编写一个一次移动一个文件的 PHP 脚本。JavaScript 处理从 1 到 100 的循环,并使用不同的参数向 PHP 脚本发送 100 个同步请求。然后,您可以跟踪进度并更新 HTML 页面上的 DOM 元素。
jQuery 有一个很好的 .ajax() 函数可以帮助你入门。下面是一个简单的例子。它不会马上工作,但你可以在它的基础上让它工作。
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... */
}
});
}