ホームページ  >  記事  >  バックエンド開発  >  ページを飛ばさずにPHPスクリプトを実行する方法を詳しく解説

ページを飛ばさずにPHPスクリプトを実行する方法を詳しく解説

PHPz
PHPzオリジナル
2023-03-29 11:31:091045ブラウズ

Web 開発では、ユーザーのログイン検証、フォーム データの送信など、特定の機能を実装するために PHP スクリプトを使用する必要があることがよくあります。ただし、これらの PHP スクリプトを実行すると、ページ ジャンプが頻繁に発生します。これはユーザー エクスペリエンスに優しくなく、Web サイトのパフォーマンスにも影響します。では、ページにジャンプせずに PHP スクリプトを実行するにはどうすればよいでしょうか?この記事では、これを実現するためのいくつかの方法を紹介します。

1. Ajax テクノロジの使用

Ajax テクノロジを使用すると、リクエストを非同期でサーバーに送信し、ページを更新せずにページのコンテンツを更新できます。したがって、Ajax テクノロジを使用すると、ページにジャンプせずに PHP スクリプトを実行できます。具体的な操作方法は以下の通りです。

  1. HTMLページにjQueryライブラリを導入します:
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
  1. Ajaxコードを記述します:
$.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 スクリプトの実行後、実行結果を取得することもできます。具体的な操作方法は以下の通りです。

  1. HTMLページにiframeタグを追加します:
<iframe id="php-process" name="php-process" style="display:none;"></iframe>
  1. HTMLページにフォームフォームを追加します:
<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>
  1. JavaScript を使用してフォームを送信し、実行結果を受け取ります:
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 を使用すると、サーバーにリクエストを送信して実行結果を取得し、ページを更新せずにページのコンテンツを更新できます。具体的な操作方法は以下の通りです。

  1. 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");  
}
  1. サーバーにリクエストを送信します:
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 つのパラメーター (名前と年齢) がサーバーに渡されます。サーバーが送信されたデータを正しく解析できるようにするために、リクエスト ヘッダーも設定する必要があることに注意してください。

  1. サーバーの応答を受信します:
xmlhttp.onreadystatechange = function(){
    if (this.readyState == 4 && this.status == 200){
        // 成功接收到服务器的响应后执行的代码
        alert(this.responseText);  // 显示服务器返回的数据
    }
}

ここでは、コールバック関数を使用してサーバーの応答を受信します。 readyStateが4、statusが200の場合はサーバーからレスポンスデータが返されたことを意味しており、コールバック関数でデータを取得してページに表示することができます。

概要

上記は、ページにジャンプせずに PHP スクリプトを実行するいくつかの方法です。ユーザー アカウントやパスワードなどの機密情報を含む一部の操作については、ユーザー情報を保護するためにより安全な手段を採用する必要があることに注意してください。たとえば、PHP スクリプトにセキュリティ検証メカニズムを追加して、認証されたユーザーのみがスクリプトを実行できるようにします。

以上がページを飛ばさずにPHPスクリプトを実行する方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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