ページ上のフォーム コントロールのクリックは、クライアント側のアクションです。PHP での変数の更新は、サーバー側のアクションです。幸いなことに、AJAX を使用すると、クライアントからサーバー リソースにアクセスできます。
次のコードは、jQuery JavaScript ライブラリを使用して AJAX 要求を実行します。AJAX リクエストを実行するために jQuery は必要ありませんが、AJAX リクエストをネイティブにコーディングする必要があります。それは難しいことではありませんが、それほど簡単なことでもありません。
JavaScript:
$.ajax({
url: '/path/to/file.php',
data: 'url=encoded&query=string', // Can also be an object
success: function( output ) {
// This function gets called once the AJAX Request returns. It is sent
// a string parameter containing all output of the Server-side script
}
});
では、file.php
必要なアクションを実行するだけです。AJAX リクエストは GET または POST 経由で送信でき、渡された変数はそれぞれ$_GET
および$_POST
スーパーグローバルで使用できます。
渡されるoutput
パラメーターは文字列で、サーバー側スクリプトから生成されるすべての出力 (つまりecho
/ ) です。print
その文字列は、オブジェクトのJSON 表現にすることもできます。その場合、文字列を解析して、JavaScript でオブジェクトとして使用できるようにする必要があります。これは、サーバー側スクリプトが単純な HTML/XHTML ではなく大量のデータを返す場合に役立ちます。
詳細については、 AJAX に関する jQuery のドキュメント、またはネイティブ ajax リクエストに関する Google を参照してください。
別の方法として、コントロールが押されたときにフォームを送信する通常のフォーム要素としてコントロールを使用することもできます (たとえば、それぞれが名前付きの送信ボタン/画像入力です)。フォーム ハンドラーは、 に存在する値に応じて、どちらが押されたかを判断し$_POST
ます。このメソッドは、ユーザー入力をサーバー上で実行されるフォーム ハンドラーに送信し、処理が完了するとユーザーをページにリダイレクトします。