Ajaxを使わず普通にPOSTしてデータベースにインサート、セレクトで表示はできています。
それを非同期通信でやりたいのですがエラーが出てしまってますが、どこが間違っているかわかりません。。。
SyntaxError: Unexpected token < in JSON at position 23 とででます、、、
ajax.jsの書き方がいまいち分からず、検索コピーしたのを編集しました。。
ajax.jsが間違っていますか??
Ajaxを使うにあたって、index000.php の書き方も変えないといけないのでしょうか??
index.php
<p> <input type="text" name="name"> 内容 <textarea type="text" name="text"></textarea> <button id="send">送信</button></p> <div id="return"></div> <script type="text/javascript" src="ajax.js"></script>
ajax.js
$(function(){ $("#send").on("click", function(event){ $.ajax({ type: "POST", url: "index000.php", data: { "name" : $('name').val(), "text" : $('text').val() }, dataType : "json" }).done(function(data){ $("#return").append('<p>'+data.name+' : '+data.text+'</p>'); }).fail(function(XMLHttpRequest, status, e){ alert(e); }); }); });
index000.php
<?php if(isset($_POST['name'])) { $my_nam=htmlspecialchars($_POST["name"], ENT_QUOTES);//名前を$my_namに代入 $my_mes=htmlspecialchars($_POST["text"], ENT_QUOTES);//メッセージを$my_mesに代入 $dsn= "mysql:host=localhost;dbname=chat;charset=utf8"; $user="root"; $pass=""; try{ $db = new PDO($dsn,$user,$pass); $db->query("INSERT INTO chat(ban,name,text,dat) VALUES (NULL,'$my_nam','$my_mes',NOW())"); //SQL文で'chat-tb'テーブルに番号・名前・メッセージ・日付の内容を取得して保存していく }catch (Exception $e) { echo $e->getMessage() . PHP_EOL; } header("Location: {$_SERVER['PHP_SELF']}"); exit; } ?> <?php $dsn= "mysql:host=localhost;dbname=chat;charset=utf8"; $user="root"; $pass=""; $db = new PDO($dsn,$user,$pass); $ps = $db->query("SELECT * FROM chat ORDER BY ban ASC"); ### ヘディングのテキスト while($r = $ps->fetch()){ ?> <div class="con"> <h4> <?php print "{$r['name']}";?>: <?php print nl2br($r['text']); ?> </h4> </div> <?php } }catch(Exception $e){ echo $e->getMessage() . PHP_EOL; } ?>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/30 06:13