0

假设我有这样的事情:

$count = 0; 
foreach($CourseDetails as $course_line) {
    print "<tr><td>{$course_line['class_code']}</td>
            <td>{$course_line['class_name']}</td>
            <td>{$course_line['class_unit']}</td>
            <td>{$course_line['class_description']}</td>
            <td>{$course_line['class_instructors']}</td>";
    $count = $count + 1
    if ($count = 10);
        $count = 0;
        // code that stops script and makes a "Continue?" button pop up on the webpage under the already outputed details
        // if the client presses the "Continue?" button, allow the script to continue (jump back into the foreach loop)
}

我试图找到一种方法来停止脚本,然后制作一个按钮说“继续?”。如果客户端按下按钮,我希望脚本从停止的地方继续。PHP是否有任何允许这样做的函数?

4

2 回答 2

1

简短的回答:不!

这更像是一个工作流设计问题。我建议创建一个要执行的项目列表。然后尝试执行它们(当它们被成功处理时,将它们标记为完成),如果遇到错误,则停止执行并让用户知道。如果用户希望继续,请重新加载页面,并继续执行初始列表中尚未完成的项目。

于 2013-03-26T21:03:54.787 回答
0

一旦页面在浏览器中加载,您就无法停止脚本。您只能在脚本内创建中断条件。页面之间“记忆”的两种方式是传递一个 URL 变量,例如 start=20,或者使用 $_SESSION 变量来记住最后的中断点。最好通过 URL 传递变量,以便可以单独访问页面。

然后,在您的循环中,只需评估条目是否在最后一个中断之上有一个数字。以下假设您的课程位于具有数字索引的数组中,在这种情况下 $count 是多余的。如果您要从数据库中提取它们,请采用完全不同的方法...

$start = !empty($_GET['start']) ? $_GET['start'] : 0;
$offset = 10;

foreach($CourseDetails as $course_num => $course_line) {

    if ($course_num < $start) continue; // These were already seen.

    if ($course_num >= $start + $offset) {
        // Interrupt and make a button that links to ?start=$start+$offset.
        break;
    }

    // Here display stuff.
}
于 2015-03-30T12:55:04.927 回答