2014-01-23 3 views
0

Я пытался добавить файл PHP в качестве источника данных для календаря Jquery, который использует JSON, как показано ниже:Передача PHP файл в формат JSON не удалось загрузить данные

<script> 
    $(document).ready(function() { 
     $("#eventCalendarHumanDate").eventCalendar({ 
     eventsjson: 'modules/events/json/event.humanDate.json.php', 
     jsonDateFormat: 'human' 
      }); 
     }); 
    </script> 

Файл PHP работает, когда я эхо переменных только когда я подключился к базе данных и зациклился, он терпит неудачу, и я получаю сообщение об ошибке «error get json». Запустив мой код отдельно, я не получаю ошибку от самого файла php.

<?php 
$hostname_app_conn = "localhost"; 
$database_app_conn = "xx"; 
$username_app_conn = "xx"; 
$password_app_conn = ""; 
$app_conn = mysql_pconnect($hostname_app_conn, $username_app_conn, $password_app_conn) or trigger_error(mysql_error(),E_USER_ERROR); 
mysql_select_db($database_app_conn, $app_conn); 

$query_rs_content = "SELECT * FROM `mod_events_events` WHERE `active`=1 ORDER BY `Id` LIMIT 365"; 
$rs_content = mysql_query($query_rs_content, $app_conn) or die(mysql_error()); 
$totalRows_rs_content = mysql_num_rows($rs_content); 

header('Content-type: text/json'); 

echo '['; 
$separator = ""; 
$days = 16; 

$i = 1; 
echo $separator; 
    while($row_rs_content = mysql_fetch_assoc($rs_content)) 
    { 

    echo ' { "date": "'.$row_rs_content['eventday'].'", "type": "'.$row_rs_content['type'].'", "title": "'.$row_rs_content['Title'].'", "description": "'.$row_rs_content['teasertext'].'", "url": "" },'; 
     } 

    $separator = ","; 

echo ']'; 
?> 

благодарит заранее.

+2

Вы понимаете, что php имеет встроенную функцию для генерации json-массивов? – Pitchinnate

+0

http://www.php.net/json_encode – Pitchinnate

+0

, пожалуйста, просветите меня. не так уж и хорошо. – jkkenzie

ответ

1

Вы должны использовать функцию json_encode(), что-то вроде этого:

//more code above 
$array = new array(); 
while($row_rs_content = mysql_fetch_assoc($rs_content)) 
{ 
    $array[] = array(
     'date' => $row_rs_content['eventday'], 
     'type' => $row_rs_content['type'], 
     'title' => $row_rs_content['Title'], 
     'description' => $row_rs_content['teasertext'], 
     'url' => '', 
    ); 
} 
header('Content-type: application/json'); 
echo json_encode($array); 
die(); 

Скорее всего, вы имели некоторый характер не экранированы или что-то еще, что приводившая не является допустимым массив JSON так Javascript умирает пытаясь разобрать его.

+0

Это сработало, как будто я ничего не сделал. Я думаю, я должен получить некоторый учебник. На самом деле, я долгое время использовал PHP, но я не получил образование. Какова ваша рекомендация? – jkkenzie

+0

Рекомендация для обучения? – Pitchinnate

+0

Нет, рекомендуемый учебник или как вы добрались до этого уровня самостоятельно? Я заинтересован .. – jkkenzie

Смежные вопросы