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

ページがブラウザに読み込まれると、スクリプトを停止することはできません。スクリプト内でのみ割り込み条件を作成できます。ページ間の「メモリ」の2つの方法は、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 に答える