print_r($items)
配列を使用すると、配列が空ではないことがわかりますが、出力時に配列値は「未定義」として返されます。ここでの問題は何でしょうか?
MySQL:
「名前」、「価格」、「日」、「キュージャンプ」、「クロージング」、「ドア」という列を持つ「夜」というテーブル。それらはすべて入力されています。
eventinfo.php:
<?php
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');
include('functions.php');
connect();
$night = $_POST['club'];
// this echos fine
$night = mysql_real_escape_string($night);
$query = "SELECT * FROM nights WHERE name = '$night'";
$result = mysql_query($query);
$items = array();
if($result && mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_array($result)) {
$items[] = array("price"=>$row['price'], "day"=>$row['day'], "queue jump"=>$row['queue jump'], "closing"=>$row['closing'], "doors"=>$row['doors']);
}
}
mysql_close();
// convert into JSON format and print
echo json_encode($items);
?>
JS:
<script type="text/javascript">
$(document).ready(function() {
// for simplicity's sake, but ultimately I'd like to load all the information
$('#right_inside').html('<h2>' + $('#club').val() + '</h2>');
});
$('#club').change(function(event) {
$.ajax({
type: "post",
url: "eventinfo.php",
data: $(this).serialize(),
success: function(data) {
$('#right_inside').html('<h2>' + $('#club').val() + '</h2><p>Day: ' + data.day + '</p>');
},
dataType: "json"
});
});
</script>