如何使用Ajax延迟PHP for循环并在屏幕上回显PHP?

时间:2014-10-27 22:35:46

标签: php jquery ajax sqlite

我不确定Ajax是否是我需要的,因为我很难在哪里开始,但我会描述我想要发生的事情。

我有一个PHP文件(让我们称之为scan.php),它包含一个迭代数组的For循环,该数组包含存储在PHP目录中的本地文件的详细信息。对于数组中的每个项目(文件的路径),我希望它(可能是一个ajax脚本?)调用另一个php文件(让我们称之为info.php)并显示PHP文件在屏幕上输出的任何信息,包括信息.php将数组索引中的文件路径作为参数。

在该info.php文件中有各种(动态生成的)div,它根据用户点击的div将不同的值插入数据库。当该用户点击div时,它会在数据库中插入一个值(通过我已经工作的ajax调用),然后显示一条消息(我使用javascript window.alert)。如果该消息成功,则info.php函数结束,我们返回scan.php。无论info.php回应的是什么都被清除,然后循环再次循环。

对不起,它有点复杂,但我不知道从哪里开始。有人可以给我任何关于如何开始的提示吗?我已经看过ajax,但坦率地说我不知道​​从哪里开始,是否甚至可以使用ajax来延迟PHP for循环。

这是我的脚本,我认为会显示info.php,但它并没有回应#34; show" div - 或任何东西:

    function Search_file(path) {
    $( "#show" ).empty();
    var request = $.ajax({
        url: "info.php?path="+path,
        type: "GET",            
        dataType: "html"
    });
    $("#show").html(result); 
    request.done(function(data) {
        alert("Next file");
    });
}

1 个答案:

答案 0 :(得分:0)

AJAX是异步的,因此在设置html时,您还没有收到结果。你需要移动你的节目' done处理程序中的代码如下:

function Search_file(path) {
    $("#show").empty();
    var request = $.ajax({
        url: "info.php?path="+path,
        type: "GET",            
        dataType: "html"
    });

    request.done(function(data) {
        $("#show").append(result); 
        alert("Next file");
    });
}