0

PHPで定義された3つの変数があります

$record = "283-161-151";
$rec = explode("-", $record);
$win = $rec[0];
$draw = $rec[1];
$loss = $rec[2];

$win、$draw、$loss は問題なくエコーするので、動作していることがわかります

ページの下部で実行される別の js ファイルに var データを設定する場合、3 つの変数を 3 つのセット テキスト ラベルに渡したいと考えています。

var data = [
{ label: 'Wins',  data: '<?php echo $win ?>', color:'green'},
{ label: 'Draws',  data: '<?php echo $draw ?>', color:'orange'},
{ label: 'Losses',  data: '<?php echo $loss ?>', color:'red'}
];

各js php呼び出し<?php echo $win ?>をテスト用の実際の数に変更すると、チャートが表示されます。

インライン php 構文は正しいのだろうか? 新鮮な目で簡単に修正できることを期待して、いくつかの異なるフォーマットを試しました。

アップデート

phpコード

<?php
$record = "283-161-151";
$rec = explode("-", $record);
?>
<script>
 var win = <?php echo $rec[0]; ?>;
 var draw = <?php echo $rec[1]; ?>;
 var loss = <?php echo $rec[2]; ?>;
</script>

jsファイルコード

var data = [
{ label: 'Wins',  data: var win, color:'green'},
{ label: 'Draws',  data: var draw, color:'orange'},
{ label: 'Losses',  data: var loss, color:'red'}
];

ページソースを見ると、これが表示されます

<script>
 var win = 283;
 var draw = 161;
 var loss = 151;
</script>

しかし、まだ出力はありません..最終的なjsファイルのvar win、var drawなどを数値に置き換えると、機能します..

私が近づいているかどうか誰か知っていますか?乾杯

4

3 に答える 3

2

問題は、数字を引用していることだと思います。数字が引用符で囲まれないように変更します。

var data = [
{ label: 'Wins',  data: <?php echo $win ?>, color:'green'},
{ label: 'Draws',  data: <?php echo $draw ?>, color:'orange'},
{ label: 'Losses',  data: <?php echo $loss ?>, color:'red'}
];
于 2013-01-24T18:27:29.240 に答える
0

明らかに、PHP 変数はスコープ外です。これは、echo が '' を返すためです。

「 PHP の echo 関数を使用して JavaScript で変数を定義する方法は?」を説明する良いトピックがあります。

PS: 可能であればテスト目的で、変数が宣言されている PHP スクリプトに JavaScript スニペットを埋め込んでみてください。

于 2013-01-24T11:25:21.853 に答える
0

javascript ファイルで php を実行しようとしています。ブラウザがサーバー コードを処理できません。php はサーバー上でのみ実行されます。

あなたができることは、次のように php 変数を javascript 変数に渡すことです: ページ内 (外部スクリプトのスクリプトタグの前):

$record = "283-161-151";
$rec = explode("-", $record);
echo '<script>var plotData='.json_encode($rec).';</script>';
/* displays var plotData=[283,161,151]; */

すでにJSが存在するjavascript変数を使用すると、次のようになります。

var data = [
{ label: 'Wins',  data: plotData[0], color:'green'},
{ label: 'Draws',  data: plotData[1], color:'orange'},
{ label: 'Losses',  data: plotData[2], color:'red'}
];
于 2013-01-24T11:35:08.847 に答える