等待iframe在php中加载

时间:2013-02-19 13:19:30

标签: php mysql iframe

我在这个论坛上看了很多但却找不到我需要的东西。

我正在尝试使用php脚本来清理desknow数据库,我设法让它循环遍历我的所有录制并将命令发送到iframe但我的问题是我需要它等到iframe完成在它执行下一个循环之前加载,因为它正在向desknow服务器发送数据库命令。我试图在循环中休眠,但是当我这样做时,它只会等待指定时间的循环次数,然后同时输出所有iframe。如果有一种方法可以让它在每个循环中更改iframe的src,那么就不必为每条记录打开一个新的iframe,就像它在这里一样。

<?php
   echo "start";

    @ $db = new mysqli('localhost', 'desknow', 'xxxxxxxx', 'desknow');

    if (mysqli_connect_errno()) {
        echo "fail";
        exit;
   }

    echo "pass";

    for ($i=1; $i <4; $i++) {
        flush();
        sleep(2);   
        $query = "select email from compte where no = $i";
        $result = $db->query($query);
        $row= $result->fetch_assoc();
        $email = htmlspecialchars(stripslashes($row['email']));
        echo "<br>";
        echo "<iframe onload=\"load()\" src=\"http://0.0.0.0:81/desknow/admin?pwd=xxxxxx&action=mail_deleteemails&username=$email&domain=mydomain.com&path=inbox&before=20121231_1300/\"></iframe>";
    }

    $result->free();
   $db->close();
?>

2 个答案:

答案 0 :(得分:0)

尝试在ob_flush();flush();

之前使用echo 'start';

答案 1 :(得分:0)

您的网址包含数据库服务器的IP,用户名和密码 - 这非常不安全且非常糟糕。

如果你真的想更新这样的东西你需要在客户端做。使用javascript方法重新加载现有DOM成员的HTML内容将非常简单。

您还可以使用页面刷新或表单发布到服务器的另一次往返,以更新视图。