PHP でのフォーム データの処理は、他の Web プログラミング言語よりも簡単です。この言語をしばらく使用すると、これは議論の余地のない事実であることがわかります。この操作の単純さにより、複数のボタンを使用して同じフォームで異なるタスクを処理するという今日の話題を含む、より複雑なフォーム イベントを簡単に処理できるようになります。
なぜ複数の送信タスクを使用するのですか?
この質問に答える前に、当然の質問に答えておきます。多くのフォームは 1 つの送信ボタンに適しているのに、なぜ 2 つ (またはそれ以上) の送信ボタンが必要になるのでしょうか?
この問題を説明する最良の方法は、私の最近の開発プロジェクトの例を使用することです。このプロジェクトでの私の仕事は、図書館の詳細なカタログ照会システムを構築することです。書籍のタイトルはデータベースに保存され、管理者はブラウザベースのインターフェイスを使用して任意の書籍の記録を表示し、その記録に対して 4 つの操作 (会員返却登録、会員貸出登録、図書紛失記録) のいずれかを選択して実行できます。そして本の販売記録。
上記のタスクはすべて独立したフォームを通じて処理する必要があるため、これらのタスクに応答するには対応するボタンが必要です。フォームに渡されたデータは、クリックされたボタンに応じて、さまざまな方法で処理されます (借用/返却と会員レコードは相互に関連しており、紛失/販売レコードは在庫テーブルを変更します)。フォームは 1 つの固有のタスクのみを処理できるため、同じ PHP スクリプトは、クリックされたボタンに基づいて上記の 4 つのタスクを処理し、適切なコード セグメントを実行できます。したがって、複数のタスク送信ボタンを処理する単一のフォームと、さまざまなボタンへの自動応答を実装するフォーム処理コード セグメントが必要です。
まず、送信ボタンのあるフォームという簡単な例を示します。これにより、基本概念を明確に理解し、今後のより複雑な例に備えることができます。これはフォームです:
シングルボタンフォーム以下は、送信タスクを呼び出すprocessor.phpスクリプトです:
// 送信をチェック
// 投稿されたデータから値を取得
if ($_POST['submit'])
{
echo "数字「 . $_POST['number']; }
?>
フォームが PHP スクリプトに送信されるとき、使用される送信方法に応じて (私はこの記事の POST)、PHP は特定の $_POST または $_GET 配列を自動的に作成します。フォーム入力フィールドに入力された値は、配列内のキー データに自動的に変換され、通常のデータ シンボルを使用してアクセスできます。
特に注目すべき点は、上記のスクリプトでタスクを送信するボタンがどのように処理されるかです。フォームが送信されると、送信ボタンは実際の「名前」に従って $_POST の要素に変換されます。次のコード行を追加すると明らかになります:
print_r($_POST);
上記の PHP スクリプトを理解するには、配列の内部構造を見てみましょう。コントロール間のさまざまな形式の相互関係を明確に確認できます。