jQueryとPHPでAjaxを利用して入力フォームを作っています。
PHP側で入力データがnullで返ってくるので困っています。
ググって調べたのを試しましたが、いずれもnullが返ってきました。
こんな感じで入力値がnullで出力されてしまいます。
{"id":null,"hoge":"hogehoge"}
追記(2022-08-04)
Javascript側のconsole.logではnullが出力されませんが、PHPの方ではnullが表示されてしまいます。
PHPにjsonデータだけ出力して表示したいということです。
ソースコードは以下の通りです。
html
1<html> 2<head> 3 <meta charset="UTF-8"> 4 <title>入力フォーム</title> 5</head> 6<body> 7 <form id="bitobopass_table" name="bitobopass_table"> 8 <table id="passtable"> 9 <tr> 10 <td><input id="twid" name="twid" type="text" placeholder="ID"></td> 11 </tr> 12 </table> 13 <button type="button" id="sendBtn" name="sendBtn">送信</button> 14 </form> 15 <table id="export01"> 16 <tr> 17 <td>id</td> 18 <td>pass</td> 19 </tr> 20 </table> 21 <script src="https://code.jquery.com/jquery-3.6.0.js"></script> 22 <script src="js/receive.js"></script> 23</body> 24</html>
javascript
1$(function() { 2 $('#sendBtn').on('click', function(event) { 3 let id = $('#twid').val(); 4 $.ajax({ 5 type: "POST", 6 url: "../request.php", 7 data: { "id" : id }, 8 dataType : "json" 9 }).done(function(){ 10 console.log('success'); 11 }).fail(function(){ 12 console.log('fail'); 13 }); 14 }); 15});
php
1<?php 2 $id = $_POST['twid']; 3 $list = array("id" => $id, "hoge" => "hogehoge"); 4 header("Content-type: application/json; charset=UTF-8"); 5 echo json_encode($list); 6 exit; 7?>
フォルダ階層
鯖┬js─receive.js
├css
├request.php
└top.html
動作環境
Google Chrome 103.0.5060.134
レンタル鯖(xfree)
FTPソフト(Filezilla)
・nullになる原因は何か
・どのようにすればnullが解決できるか
ご回答いただけると嬉しいです。
回答4件