PHP配列をjsonオブジェクトとして表示する際に問題があります。私はphp forループのデータベースからデータを配列に書きたいので、jsonオブジェクトを作成してjavascriptで使用することができます。forループとしてのJSONの多次元PHP配列
GetJSONを使用してコンソールにデータを記録すると、 'id'のようなデータは表示されませんが、PHPでJSONをエコーしたときに表示されます。私の配列がjsonオブジェクトとして動作するかどうかを調べるために、 'name'の値がforループの外側に埋められます。
<script type='text/javascript'>
$(document).ready(function(){
$.getJSON('database/getTourInfo.php', function(data) {
console.log(data);
$.each(data, function(key, val) {
console.log(val.show.name);
});
});
});
</script>
これはgetTourInfo.phpです。 forループの外側に配列の値を書き込むと、コンソールに出力されます( 'name'を参照)。しかし、私が以下のようにforループでそれを埋めると、私はそれをエコーするとJSONに現れますが、コンソールには表示されません。
<?php
header("Content-type: text/javascript");
$x = 0;
$tourInfo = array();
$tourInfo_array = array (
"show" => array(
"id" => "",
"name" => "Naam1",
"date" => "",
"support" => "",
"festival" => ""
),
"location" => array(
"latitude" => "",
"longitude" => ""
),
"venue" => array(
"name" => "",
"space" => "",
"capacity" => ""
),
"people" => array(
"attending" => "",
"interested" => ""
)
);
$tourdates = json_decode($tourdatesJSON, true);
foreach($tourdates as $tourdate) {
$x++;
$event_page_id = $tourdate['ShowEventpage'];
$festival = $tourdate['ShowFestival'];
$support = $tourdate['ShowVoorprogramma'];
$tourdates_array[$x]["show"]["id"] = $event_page_id;
$tourdates_array[$x]["show"]["support"] = $support;
$tourdates_array[$x]["show"]["festival"] = $festival;
array_push($tourInfo, $tourInfo_array[$x]);
}
$tourInfoJSON = json_encode($tourInfo, JSON_PRETTY_PRINT);
echo $tourInfoJSON;
?>
にはどうすればgetJSONでJSONとしてループして出力それのための私の多次元配列を埋めることができますか?
'$ .getJSON()'は 'Content-Type:application/json'を期待していますか?変数 '$ tourdatesJSON'はどこから来たのですか? – dex
これは、HTMLの
に含まれている別のJSONオブジェクトです。コンテンツタイプをapplication/jsonに変更しましたが、結果はありません。 – lottebijl'$ tourInfo_array [$ x]'は定義されていません - あなたのコードはちょっと混乱しますが、単純化できますか? – dex