-5

配列を含むというphp変数があり、$usershoursJavascriptコード内にエコーしたいと思います。それ、どうやったら出来るの?

これを試しましたが、機能しませんでした。

$usershours = "
data.addRow([ new Date(2012,4,1),50119]).+'<br>+'.
data.addRow([ new Date(2012,4,2),242575])";

<script type="text/javascript">
document.write($arrayholder);
</script>

出力を次のようにします。

data.addRow([ new Date(2012,4,1),50119]) 
data.addRow([ new Date(2012,4,2),242575])

PS-この形式が必要なのは、これがGoogleChartsAPIがグラフを正しくレンダリングするために受け入れる形式だからです。

4

4 に答える 4

4

私が収集したものから、このコードをクライアントマシンのjavascriptで実行する必要があります。

data.addRow([ new Date(2012,4,1),50119]) 
data.addRow([ new Date(2012,4,2),242575])

単に:

<script type="text/javascript">
<?php 
$usershours = "
data.addRow([ new Date(2012,4,1),50119])
data.addRow([ new Date(2012,4,2),242575])";

echo $usershours;
?>
</script>
于 2012-08-22T02:16:53.947 に答える
3

PHP を JS で混乱させることは最適なアプローチとは言えませんが、これによりコードが少し整頓された状態に保たれます。

あなたのデータが[データベースまたはファイルから取得された]配列から得られたものであると仮定しましょう:

$data = array(
    array("date" => "2012-04-01", "id" => 50119),
    array("date" => "2012-04-02", "id" => 242575)
);

この出力json_encode($data)を取得します。

[
  { date : "2012-04-01", id : 50119},
  { date : "2012-04-02", id : 242575}
]

データを PHP 構造から Javascript 構造に変換する方法がわかったので、次のように書くだけです。

<script>

  var serverData = <?php echo json_encode($data) ?>;

  for(var i = 0; i < serverData.length; i++)
  {

     data.addRow([ new Date( serverData[i].date ), serverData[i].id ]);

  }

</script>

確かに、data.addRow()JS コードのどこかで宣言された関数です。

于 2012-08-22T02:30:04.387 に答える
-1

文字列として(コードとしてではなく)出力する必要があるvar arrayholder = <?php json_encode($usershours);?>;場合は、単に使用してくださいarrayholder

于 2012-08-22T02:11:52.590 に答える
-2

一般的なアドバイス: PHP から有効な JavaScript をレンダリングしようとしないでください。いくつかの代替ソリューション: データを HTML 要素に埋め込み、JavaScript と Ajax を介して抽出する

そうは言っても

?>
(function () {
   console.log(<?= json_encode($phpVar); ?>);
}());
<?

自分の足を撃っても大丈夫なときのやり方です

于 2012-08-22T02:22:00.750 に答える