0

おそらくまだ決定されていないajaxを使用して、zendアクションからビューに配列を渡す必要があります。そのためには、スクリプト要素を挿入し、その中にjavascript変数を定義する必要があります。この変数に、php配列を渡しますが、スクリプト要素をzend_formに挿入するのに問題があります。このコードを私のphtmlスクリプトに含める最も簡単な方法は何ですか?

<script type="text/javascript">
    var obj = <?php echo json_encode($php_array); ?>;
</script>
4

2 に答える 2

1

ビューヘルパーinlineScript()を使用して、Javaスクリプトをビューに渡すことができます。

あなたの行動で$this->inlineScript()->setScript('java script here');

あなたのビューでこれをエコーアウトします <?php echo $this->inlineScript() ?>

json()ヘルパーを使用して、ビュー内のjavaスクリプトにjsonを渡すこともできます。

于 2012-05-18T14:07:20.347 に答える
0

RockyFordのソリューションは非常に複雑なIMOです。PHP配列を任意のビュー変数に割り当て、投稿したコード(ビュー変数を使用するように変更)をビュースクリプトの最後に追加するだけです(フォームをエコーし​​た直後)。

//controller
$this->view->php_array = array(...);

//view
echo $this->form;
<script type="text/javascript">
    var obj = <?php echo json_encode($this->php_array); ?>;
</script>

期待どおりに動作します。

JSONビューヘルパーを使用すると、ヘッダーが変更され、デフォルトでレイアウトが無効になるため、使用するのは理想的ではありません。PHPにjson_extensionがロードされていなくても機能するように、にjson_encode置き換えることができます。Zend_Json::encode

于 2012-05-18T18:54:48.760 に答える