我在一个网站上工作,我必须创建一个PHP循环与Javascript在它。这个是可能的吗?下面是我需要循环的代码片段。
<? while($calendar = mysqli_fetch_array($client_get_calendar)) { ?>
{
title: '<? echo $calendar['event_title'] ?>',
start: new Date(<? echo date("Y", strtotime($calendar['date_start'])) ?>, <? echo date("m", strtotime($calendar['date_start'])) ?>, <? echo date("d", strtotime($calendar['date_start'])) ?>),
end: new Date(<? echo date("Y", strtotime($calendar['date_end'])) ?>, <? echo date("m", strtotime($calendar['date_end'])) ?>, <? echo date("d", strtotime($calendar['date_end'])) ?>),
className: '<? echo $calendar['importance'] ?>'
},
<? } ?>这能实现我想要实现的目标吗?它给了我一个错误,但我不知道代码出了什么问题。谢谢你的帮助!
发布于 2013-05-09 00:29:29
您似乎正在为数据的Javascript对象构建JSON输出。
使用以下代码可以更好地实现这一点。
<?php
$calendar = mysqli_fetch_array($client_get_calendar);
echo json_encode($calendar);
?>在循环中随意修改数组。
发布于 2013-05-09 00:31:35
JSON很棒,JSON不会杀北极熊每当有人在没有JSON的情况下构建Javascript对象时,北极熊就会死掉。
$rows = array();
while($calendar = mysqli_fetch_array($client_get_calendar)) {
$nRow = array(
'title' => '' /* <= do your tricks here */,
'start' => '' /* <= and here */,
'end' => '' /* <= and here */,
'className' => '' /* <= and here */
);
// Now append it do rows
$rows[] = $nRow;
}
// dat magic
echo json_encode($rows);发布于 2013-05-09 00:41:04
我假设你在IE中遇到了语法错误。
并且您正在尝试创建一个对象的javascript数组。
在本例中,脚本末尾有一个额外的逗号,这将在IE上导致错误。解决方案就像@IAmNotProcrastinating所说的,做一个json。
因此,正如上面的答案,您可以保存数据并将其编码为json字符串。
继续@IAmNotProcrastinating工作,而不是直接输出:
<?php
if(count($row)>0){
$data = json_encode($row);
}
else{
$data = json_encode(array());
}
?>
var js_data = <?php echo $data; ?>;
do_something_with_js_data(js_data);https://stackoverflow.com/questions/16445439
复制相似问题