Web 開発ではフォームは不可欠な要素です。ユーザーはフォームを通じてサーバーにデータを送信します。サーバーはデータを受信した後に処理し、対応する結果をユーザーに返します。 PHP では、フォーム処理には通常 POST または GET メソッドが使用され、送信後の操作は通常、処理のために別のページにジャンプします。ただし、場合によっては、フォーム送信後にそのページにジャンプしたくない場合や、処理のために別のページにジャンプしたくない場合があります。この記事では、PHP フォームを送信するときの非ジャンプ ページとジャンプ ページの実装に焦点を当てます。
1. ページにジャンプせずに php フォーム送信を実装する方法
1. Ajax テクノロジーを使用する
Ajax は、ページを更新せずにサーバーと対話できるテクノロジーです。 . ページに飛ばずにデータの送受信が可能です。 Ajax を使用してフォーム データを送信すると、ページを更新したり他のページにジャンプしたりせずに、データをサーバーに直接送信できます。
具体的な実装方法:
まず、Web ページに jQuery ライブラリと js ファイルを導入する必要があります。例:
次のコードを記述しますform.js ファイル内:
$(document).ready(function() {
// フォームデータを取得
var formData = $('#myForm').serialize();
// Ajax リクエストを送信
$.ajax({
type: "POST", url: "submit.php", data: formData, success: function(result) { // 处理服务器返回的数据 $('#result').text(result); }
});
});
PHP コードでは、フォーム データは前と同じ方法ですが、作業するために他のページに移動する必要はありません。例:
$name = $_POST['name'];
$email = $_POST['email'];
// データ処理を実行します
$result = "こんにちは、" . $name . "! あなたの電子メールは " . $email;
// 結果を返します
echo $result;
?>
2 XMLHttpRequest オブジェクトの使用
jQuery ライブラリと Ajax テクノロジを使用して、ページにジャンプせずにフォームを送信することに加えて、XMLHttpRequest オブジェクトを使用してこれを実現することもできます。 XMLHttpRequest オブジェクトは、Web 開発で一般的に使用されるメソッドの 1 つであり、これを使用して非同期データ送信を実現できます。
具体的な実装方法:
まず、Web ページにフォーム要素を作成し、リスナーを追加する必要があります。送信ボタンをクリックすると、XMLHttpRequest オブジェクトを通じてデータがサーバーに送信されます。例:
<script><br> document.getElementById("submitButton").addEventListener("click", function() {</p> <pre class="brush:php;toolbar:false">var xhr = new XMLHttpRequest(); var formData = new FormData(document.getElementById('myForm')); xhr.open("POST", "submit.php", true); xhr.send(formData); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { document.getElementById("result").innerHTML = xhr.responseText; } }</pre> <p>});<br></script>
php コードでは、フォーム データを処理する方法は以前と同じですが、処理のために他のページにジャンプする必要がない点が異なります。例:
$name = $_POST['name'];
$email = $_POST['email'];
// データ処理を実行します
$result = "こんにちは、" . $name . "! あなたの電子メールは " . $email;
// 結果を返します
echo $result;
?>
2 . PHPフォーム送信ジャンプページ実装方法
場合によっては他のページにジャンプして処理する必要があります。たとえば、新しいユーザー アカウントを作成する場合、フォームを送信した後にユーザー情報ページにジャンプして表示する必要があります。 PHP には、ページにジャンプするためのさまざまなメソッドが用意されています。これらを以下に紹介します。
1.header メソッド
header メソッドは、ページにジャンプするために最も一般的に使用されるメソッドの 1 つです。 PHP. このメソッドは、ジャンプを実装するために HTTP ヘッダーを設定できます。例:
header("Location: http://www.example.com/userinfo.php");
exit;
ヘッダーを設定する前に出力があってはなりませんこれにより、HTTP ヘッダーが正しく設定されなくなるためです。同時に、ページにジャンプした後にプログラムが実行を継続しないように、exit または die メソッドをヘッダー メソッドの後に追加する必要があることに注意してください。
2.JavaScriptジャンプ
ヘッダーメソッド以外にJavaScriptを使用してページにジャンプすることもできます。例:
<script><br> window.location.href="http://www.example.com/userinfo.php";<br></script>
このメソッドは PHP コードに直接埋め込むことができます。なお、JavaScriptを使用してページにジャンプした場合、ブラウザに表示されるURLは変更されず、ソースコードを表示する場合はリダイレクト先のURLのみが表示されます。
3.meta タグ ジャンプ
もう 1 つの方法は、 タグを使用してページにジャンプすることです。これは、次のコードを head タグに追加することで実現できます:
このうち、content 属性はジャンプ時間を秒単位で表し、url 属性は対象ページの URL を表します。
概要
この記事では、主にAjax技術とXMLHttpRequestオブジェクトを利用して、ページに飛ばずにphpフォームを送信する実装方法を紹介します。同時に、PHP フォーム送信用のジャンプ ページを実装する 3 つの方法、つまりヘッダー メソッド、JavaScript ジャンプ、 タグ ジャンプも紹介します。各方法には独自の長所と短所があり、実際のニーズに応じて適切な方法を選択する必要があります。
以上がページにジャンプせずにPHPフォームの送信を実現する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。