我们可以只使用PHP制作增量计数器吗?

时间:2012-11-23 16:18:34

标签: php

我想知道如果没有javascript可以更新回声吗?

例如

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

但是它只会在不添加其他行的情况下更新数字,而另一行直到100.这是可能的,还是仅使用javascript就可以实现此目的。

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

  

100页中的45页

2 个答案:

答案 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... */
        }
    });
}