1

我在一个网站上工作,我必须在其中创建一个带有 Javascript 的 PHP 循环。这可能吗?这是我需要循环的代码片段。

<? 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'] ?>'
},
<? } ?>

这对我想要完成的工作有用吗?它给了我一个错误,但我不知道代码有什么问题。谢谢你的帮助!

4

3 回答 3

0

我假设您在 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);
于 2013-05-08T16:41:04.033 回答
0

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-08T16:31:35.343 回答
0

您似乎正在为 Javascript 数据对象构建 JSON 输出。

这将通过以下方式更好地实现。

<?php
$calendar = mysqli_fetch_array($client_get_calendar);
echo json_encode($calendar);
?>

在循环中根据需要修改数组。

于 2013-05-08T16:29:29.047 回答