前提・実現したいこと
HTMLを用いてフォームを作成し、そのデータをSjaxで送信して別ウィンドウで確認させてから
それで良いなら送信。修正の必要があるならウィンドウを閉じて修正する。
というものを作ろうとしています。
データベースに送るデータと表示するデータは別であり、
Sjaxで送信する際はその2種類を同時に送り最終的にはデータベースに送るべきデータのみを送ろうとしています。
(同期通信を行うのでSjaxとしています。誤字ではないです)
発生している問題
Sjaxを用いてどのように別ウィンドウにデータを表示させれば良いか、
また、表示させるべきデータとデータベースに送るべきデータを同時に送って片方のみを表示、
かつ表示させないデータのみを送信するやり方はあるか。
またそれはどのようにやるかがわからない状況です
該当のソースコード
HTML
1<!-- 別ウィンドウに表示するものです -> 2 <p>hoge:<span id="hoge"></span></p> 3 <p>fuga:<span id="fuga"></span></p> 4 <p>piyo:<span id="piyo"></span></p> 5 <!-- 以降同様に続く -> 6 <p><input type="button" id="submit" value="Send"></p><!-- 送信用のボタン ->
js
1//Sjax通信用のコードです。現時点でできている物を記載します。 2$.ajax({ 3 type: "POST", 4 url: "checker.php", 5 async: false, 6 dataType: "json", 7 //ここにデータ(表示用、データベースへの送信用)を記載 8 success: function(data){ 9 window.open("./check.html","_blank"); 10 //PHPから送られたjsonを表示。ここでどうすべきかが分からないです。 11 } 12});
PHP
1function h($str) { 2 return htmlspecialchars($str, ENT_QUOTES, 'UTF-8'); 3} 4 header('Content-Type: application/json; charset=utf-8'); 5 $hoge=h(filter_input(INPUT_POST,"hoge")); 6 $hoge_echo=h(filter_input(INPUT_POST,"hoge_echo")); 7 $fuga=h(filter_input(INPUT_POST,"fuga")); 8 $fuga_echo=h(filter_input(INPUT_POST,"fuga_echo")); 9 //"_echo"があるのが表示用データ。無いのは送信用のデータです。 10 /*以下中略*/ 11 $data=array(); 12 $data["hoge"]=$hoge; 13 $data["hoge_echo"]=$hoge_echo; 14 /*以下中略*/ 15 echo json_encode($data);
補足情報(FW/ツールのバージョンなど)
jQuery:3.2.0
PHP:7.1.6
回答2件
あなたの回答
tips
プレビュー