Web 開発では、ユーザーのログイン検証、フォーム データの送信など、特定の機能を実装するために PHP スクリプトを使用する必要があることがよくあります。ただし、これらの PHP スクリプトを実行すると、ページ ジャンプが頻繁に発生します。これはユーザー エクスペリエンスに優しくなく、Web サイトのパフォーマンスにも影響します。では、ページにジャンプせずに PHP スクリプトを実行するにはどうすればよいでしょうか?この記事では、これを実現するためのいくつかの方法を紹介します。
1. Ajax テクノロジの使用
Ajax テクノロジを使用すると、リクエストを非同期でサーバーに送信し、ページを更新せずにページのコンテンツを更新できます。したがって、Ajax テクノロジを使用すると、ページにジャンプせずに PHP スクリプトを実行できます。具体的な操作方法は以下の通りです。
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
$.ajax({ url: 'test.php', // PHP脚本的URL地址 type: 'post', // 请求方式 data: {name: 'John', age: 18}, // 发送给服务器的数据 success: function(response){ // 成功接收到服务器的响应后执行的代码 alert(response); // 显示服务器返回的数据 } });
この例では、test.php という名前の PHP スクリプトに POST リクエストを送信し、2 つのパラメーター (名前と年齢) をサーバーに渡しました。サーバーがリクエストを正常に処理すると、Ajax コールバック関数で取得できるデータが返されます。
2. iframe タグを使用する
iframe タグは別の HTML ページに埋め込むことができます。PHP スクリプトを実行するページを iframe に埋め込むことができます。PHP スクリプトの実行後、実行結果を取得することもできます。具体的な操作方法は以下の通りです。
<iframe id="php-process" name="php-process" style="display:none;"></iframe>
<form id="php-form" method="post" action="test.php" target="php-process"> <!-- 在这里添加需要传递给PHP脚本的参数 --> <input type="hidden" name="name" value="John" /> <input type="hidden" name="age" value="18" /> </form>
function submitForm(){ document.getElementById("php-form").submit(); // 提交form表单 var iframe = document.getElementById("php-process"); iframe.onload = function(){ // PHP脚本执行完毕后执行的代码 alert(iframe.contentWindow.document.body.innerHTML); // 获取执行结果 } }
ここでは、submitForm 関数を定義します。関数が呼び出されると、フォームはフォームが自動的に送信され、iframe が読み込まれた後に実行結果が取得されます。 iframe の表示属性は none に設定する必要があることに注意してください。そうしないと、ページのレイアウトに影響します。
3. XMLHttpRequest オブジェクトの使用
XMLHttpRequest は、ブラウザとサーバーの間でデータを送信するために使用される JavaScript オブジェクトです。 XMLHttpRequest を使用すると、サーバーにリクエストを送信して実行結果を取得し、ページを更新せずにページのコンテンツを更新できます。具体的な操作方法は以下の通りです。
var xmlhttp; if (window.XMLHttpRequest){ // code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp = new XMLHttpRequest(); } else{ // code for IE6, IE5 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
xmlhttp.open("POST","test.php",true); // 向test.php发送一个POST请求 xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); // 设置请求头 xmlhttp.send("name=John&age=18"); // 发送请求的数据
ここでは、POST リクエストが使用され、2 つのパラメーター (名前と年齢) がサーバーに渡されます。サーバーが送信されたデータを正しく解析できるようにするために、リクエスト ヘッダーも設定する必要があることに注意してください。
xmlhttp.onreadystatechange = function(){ if (this.readyState == 4 && this.status == 200){ // 成功接收到服务器的响应后执行的代码 alert(this.responseText); // 显示服务器返回的数据 } }
ここでは、コールバック関数を使用してサーバーの応答を受信します。 readyStateが4、statusが200の場合はサーバーからレスポンスデータが返されたことを意味しており、コールバック関数でデータを取得してページに表示することができます。
概要
上記は、ページにジャンプせずに PHP スクリプトを実行するいくつかの方法です。ユーザー アカウントやパスワードなどの機密情報を含む一部の操作については、ユーザー情報を保護するためにより安全な手段を採用する必要があることに注意してください。たとえば、PHP スクリプトにセキュリティ検証メカニズムを追加して、認証されたユーザーのみがスクリプトを実行できるようにします。
以上がページを飛ばさずにPHPスクリプトを実行する方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。