将php文件传递给json无法加载数据

时间:2014-01-23 18:41:25

标签: php json

我试图添加一个php文件作为使用json的jquery日历的数据源,如下所示:

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

php文件工作时我只回显变量但当我连接到数据库并循环时,它失败并且我得到错误“错误获取json”但是单独运行我的代码我从php文件本身没有得到任何错误。< / p>

    <?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 ']';
?>

提前感谢。

1 个答案:

答案 0 :(得分: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正在试图解析它。