【jquery】ajaxでpostする方法
ajaxをつかって非同期的にpostする方法について
基本的なやり方を書いておきます。
jsではpostしたいタイミングで以下のように記述します。
$.post('post先.php', { // 送りたいデータ data1_name : data1_content data2_name : 'data2_content' }, function(res){ // post先.phpで echo した内容がresに入ってくる // 送信後の処理をここにかく } );
送信成功/失敗で処理を分けたい場合は
$.post() でなく $.ajax()を使う必要があります。
post内容を受け取るをphpで受け取る場合
送信先.php は以下のように記述します。
<?php if ($_SERVER['REQUEST_METHOD'] === 'POST') { try { $res = '何らかの処理をした結果'; header('Content-Type: application/json'); echo json_encode($res); exit; } catch (Exception $e) { header($_SERVER['SERVER_PROTOCOL'] . ' 500 Internal Server Error!!', true, 500); echo $e->getMessage(); exit; } }
複数のデータをまとめて返す場合、
header('Content-Type: application/json');
と echo の前に書くことで結果をjson形式にでき,js側で連想配列として扱えるようになります。