jQueryのプログラミングにおいてデータをPOSTする処理を作成した
post.js
$.post('test.php', params,'json').done(
function(data, textStatus){
$('.result').text(data.text);
}
)
test.php
<?php
$data = $_POST();
$res[] = array('type' =>'status', 'text' => $sw);
$result = json_encode($res);
echo $result;
?>
コールバック関数において、dataに結果は入ったが、期待したオブジェクトではなく、単なるテキストになっていた
このため、data.textがundifinedになってしまっていた。
dataの中身を確認してみると、テキストとして以下の内容が入っていた
data = [{type => status}, {text => success}]
どうやら、これをオブジェクトに変換する必要があるみたいだ。
そこで、コールバック関数の先頭に変換処理を追加修正した。
post.js
res = JSON.parse(data);
$('.result').text(res.text);