0

我想知道是否可以在没有 javascript 的情况下更新 echo ?

例如

<?php
for ($i = 1; $i < 100; $i++){
    echo $i;
}
?>

但它只会在不添加另一行的情况下更新数字,直到 100 为止。这是可能的还是只有使用 javascript 才能实现。

我需要输出一个计数器来了解目前正在处理多少文件,例如

45 页,共 100 页

4

2 回答 2

2

没有。仅限客户端(例如 JavaScript)。因为如果你想在不重新加载页面的情况下实现这一点,那么如果 PHP 在来自浏览器的请求到来时启动,那么如何涉及 PHP?

于 2012-11-23T16:20:38.600 回答
1

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... */
        }
    });
}
于 2012-11-23T16:21:21.533 回答