ホームページ  >  記事  >  バックエンド開発  >  ページにジャンプせずにPHPフォームの送信を実現する方法

ページにジャンプせずにPHPフォームの送信を実現する方法

PHPz
PHPzオリジナル
2023-04-25 15:11:461182ブラウズ

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(&quot;POST&quot;, &quot;submit.php&quot;, true); xhr.send(formData); xhr.onreadystatechange = function() {   if (xhr.readyState == 4 &amp;&amp; xhr.status == 200) {     document.getElementById(&quot;result&quot;).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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。