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

データの Javascript オブジェクトの JSON 出力を作成しているようです。

これは、次の方法でより適切に達成できます。

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

ループで好きなように配列を変更します。

于 2013-05-08T16:29:29.047 に答える
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 に答える