下のこーどでpost.phpから
{"num":"4","name":"ゆうひ","res":"no","time":"2016-02-05 23:27:05"}{"num":"3","name":"ゆうひ","res":"ok","time":"2016-02-05 23:26:54"}{"num":"2","name":"ゆうひ","res":"hello","time":"2016-02-05 23:26:46"}{"num":"1","name":"ゆうひ","res":"hello","time":"2016-02-05 23:26:33"}
のようなデータを受け取り、JSON.parseでJavaScriptのオブジェクトに変換したとします。その後、resの値だけを取り出し表示するにはどのようにしたらいいのでしょうか。
$(document).ready(function(){
//submitした時の処理
$('#form').submit(function(){
$.ajax({
type:'POST',
//リクエスト先URL
url:'post.php',
//受け取るデータ形式
datatype:'json',
//渡すデータ
data:$('#message').serialize(),
//送信前の処理
beforeSend:function(){
//二重送信防止の為submitを無効にし文字列Thanksを表示
$('#post').attr('hidden',true);
$('#ok').html('Thanks!',true);
}
})
.done(function(data){ //成功した時の処理 //テキストエリアをクリア $('#message').val(""); console.log(data);
var res =JSON.parse(data);
})
.fail(function(){ //失敗した時の処理 $('#res').html('er'); }) //無効にしたsubmitをsubmit後から三秒後に有効に戻す function resreturn(){ $('#post').attr('hidden',false); $('#ok').html(''); } setTimeout(resreturn,1000); //submitした時リロードしないようにする return false;
});
});
-post.php-
<?php session_start(); if (!isset($_SERVER['HTTP_X_REQUESTED_WITH'])|| $_SERVER['HTTP_X_REQUESTED_WITH']!=='XMLHttpRequest') { die('error');# code... } $db=mysqli_connect("","","","")or die(mysqli_connect_error()); mysqli_set_charset($db,'utf-8'); //ログインしていてなおかつテキストエリアに入力があった場合 if (isset($_POST["message"])&&$_POST["message"]!==""&&isset($_SESSION["id"])) { //レスをデータベースに格納 $sql1=sprintf('INSERT INTO postsb SET member_id=%d, message="%s" , created=NOW() ' , mysqli_real_escape_string($db,$_SESSION["id"]), mysqli_real_escape_string($db,$_POST["message"]) ); mysqli_query($db,$sql1) or die(mysqli_error($db)); //レスを取得 $sql=sprintf('SELECT m.name , p.* FROM membersb m , postsb p WHERE m.id=p.member_id ORDER BY p.created DESC '); $posts=mysqli_query($db,$sql) or die(mysqli_error($db)); header(' Content-type;application:json; charset=utf-8 ' ); header(' X-Content-Type-Option:nosniff ' ); //レス内容をwhile文で表示 while ( $post=mysqli_fetch_assoc($posts)) { $res=array( 'num'=>$post['id'], 'name'=>$post['name'], 'res'=>$post['message'], 'time'=>$post['created'] ); echo json_encode( $res,JSON_HEX_TAG | JSON_UNESCAPED_UNICODE | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP ); } } ?>回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/02/06 17:05
退会済みユーザー
2016/02/06 17:18
2016/02/06 23:08
退会済みユーザー
2016/02/07 11:06