Хорошо, так что это моя первая попытка сделать что-нибудь с JSON.Я много сделал с PHP и MySql, а также с jQuery и JavaScript ... но ничего с JSON.У меня есть некоторые данные в базе данных MySql.В приведенных ниже кодах я использую файл PHP для извлечения данных из базы данных MySql и использую json_encode
для форматирования их в JSON.Этот файл вызывается JavaScript, который запускается при загрузке страницы (ну, на самом деле он работает на document.ready
).Затем я использую jQuery для доступа к ключам и значениям JSON для динамического заполнения областей страницы.Вот фрагменты кода, которые я использую (извините за мою «глупость» при написании этих фрагментов, все еще изучаю все это).
Это мой скрипт, который находится на моей HTML-странице test.php
:
<script type="text/javascript">
$(document).ready(function(){
$.getJSON("json_events.php",function(data){
$.each(data.events, function(i,events){
var tblRow =
"<tr>"
+"<td>" + events.id + "</td>"
+"<td>" + events.customerId + "</td>"
+"<td>" + events.filingName + "</td>"
+"<td>" + events.title + "</td>"
+"<td>" + events.details + "</td>"
+"<td>" + events.dateEvent + "</td>"
+"<td><a href='assets/customers/testchurch/events/" + events.image + "'>" + events.image + "</a></td>"
+"<td>" + events.dateStart + "</td>"
+"<td>" + events.dateEnd + "</td>"
+"</tr>"
$(tblRow).appendTo("#eventsdata tbody");
});
});
$.getJSON("json_events.php",function(data){
$.each(data.events, function(i,events){
$("#title").html("First event title: " + events.title + " ...");
});
});
});
</script>
Это код для php-файла, вызываемого вышеуказанным JS: json_events.php
<?php
require_once('includes/configread.php');
$arrayEvents = array();
$resultsEvents = mysql_query("SELECT * FROM events");
while($objectEvents = mysql_fetch_object($resultsEvents)) {
$arrayEvents[] = $objectEvents;
}
$json_object_events = json_encode($arrayEvents);
$json_events = "{\"events\": " . $json_object_events . " }";
echo $json_events;
require_once('includes/closeconnread.php');
?>
Это мой JSONкоторый содержится в переменной $json_events
из моего php-файла json_events.php
:
{
"events": [
{
"id": "2",
"customerId": "1004",
"filingName": "testchurch",
"title": "Kenya 2011 Training Meeting",
"details": "This meeting will be taking place on Sunday, February 10th @ 6pm. Get ready for our annual Kenya trip in 2011. We have been blessed to be able to take this trip for the past 3 years. Now, it's your turn to bless others! Come to this training meeting to learn how to minister to the people in Kenya and also learn what we'll be doing there.",
"dateEvent": "2011-02-10",
"image": "kenya2011.jpg",
"dateStart": "2010-09-04",
"dateEnd": "2011-02-10"
},
{
"id": "6",
"customerId": "1004",
"filingName": "testchurch",
"title": "New Series: The Journey",
"details": "We will be starting our new series titled "The Journey". Come worship with us as we walk with Paul on his 2nd missionary journey.",
"dateEvent": "2011-01-02",
"image": "",
"dateStart": "2010-09-06",
"dateEnd": "2011-01-02"
}
]
}
Это мой HTML-код на test.php
:
<table id="eventsdata" border="1">
<thead>
<tr>
<th>id</th>
<th>customerId</th>
<th>filingName</th>
<th>title</th>
<th>details</th>
<th>dateEvent</th>
<th>image</th>
<th>dateStart</th>
<th>dateEnd</th>
</tr>
</thead>
<tbody></tbody>
</table>
<div id="title"></div>
У меня есть два вопроса на самом деле ...
Вопрос 1: Этот код выглядит так, как будто он написан правильно на первый взгляд?
Вопрос 2: Я хочу иметь возможность выбрать только заголовок из события first в массиве JSON.Похоже, код, который я сейчас использую, выбирает заголовок второго события по умолчанию.Как мне это сделать?