画面遷移をせず、ajaxでデータをPHPに渡す方法です。
下記は「ボタンをクリックした時にPHPにデータを渡す」処理についてのサンプルです。
Javascript
id="start"
のボタンがあるとします。
index.html
<div class="Container">
<button class="btn" id="start">start</button>
</div>
vanilla Javascriptでは、下記のように記述します。
main.js
start.addEventListener('click', () => {
const postData = new FormData; // フォーム方式で送る場合
postData.set('firstName', 'hoge'); // set()で格納する
postData.set('lastName', 'fuga');
const data = {
method: 'POST',
body: postData
};
fetch('test.php', data)
.then((res) => res.text())
.then(console.log);
});
PHP
PHP側で、$_POST連想配列に値が保存されます。
test.php
<?php
echo $_POST['firstName']; // hoge
未対応の古いブラウザでもPolyfill
を使用することで、従来のXMLHttpRequest
を使った処理をfetch
に置き換えることができます。
jQuery
ちなみにjQUery
にもajax
でPOST
できる構文があります。
test.js
$.post( "ajax/test.html", function( data ) {
$( ".result" ).html( data );
});
プロジェクトによってはこちらを使用する事もあるかもしれません。