0

現在、PHPエコーを介してjavascriptを表示しています:

        echo 'var currentInvoiceDataJSON = <?php echo json_encode($yearData_Invoices[$currentYear] ); ?>;';

ただし、Uncaught SyntaxError: Unexpected token < エラーが発生します。これは、2 番目に関連していると推測されます

どうすればこれを解決できますか?他に可能性はありますか?

専門家のアドバイスをいただければ幸いです。

4

4 に答える 4

5

そのコードは、無効な Javascript コードとして終了します。

何が起こるかは次のとおりです。

サーバーは次の文字列をエコーし​​ます。

echo 'var currentInvoiceDataJSON = <?php echo json_encode($yearData_Invoices[$currentYear] ); ?>;';

お使いのブラウザには次の機能があります。

var currentInvoiceDataJSON = <?php echo json_encode($yearData_Invoices[$currentYear] ); ?>;

PHP スクリプトの実行が終了し、最初の文字列がエコーされると、PHP は内部エコーを処理できなくなります。


私がすること:

$data = json_encode($yearData_Invoices[$currentYear]);
echo 'var currentInvoiceDataJSON = ' . $data . ';';
于 2013-05-10T03:24:22.520 に答える
1

に変更するだけ

echo "var currentInvoiceDataJSON = ".json_encode($yearData_Invoices[$currentYear] ).";";

また、php の単一引用符で囲まれた文字列は変数を補間しないことに注意してください。

$a = "Hello World";
echo '$a'; // outputs :  $a
echo "$a"; // outputs :  Hello World

そしてあなたがphpコンテキストにいるとき

于 2013-05-10T03:34:48.590 に答える
1

代わりにこれを行います:

echo 'var currentInvoiceDataJSON = '.<?php echo json_encode($yearData_Invoices[$currentYear] ); ?>.';';
于 2013-05-10T03:25:22.093 に答える
1

私はこれをテストしていませんが、試してみてください:

echo "var currentInvoiceDataJSON = '".str_replace("'","\\'",json_encode($yearData_Invoices[$currentYear]))."';";
于 2013-05-10T03:25:22.830 に答える