我需要将一个数组从我的zend动作传递给视图,可能是使用ajax,这还有待决定。为了做到这一点,我需要插入一个脚本元素,并在其中定义javascript变量,然后我将传递我的php数组,但我在将脚本元素插入zend_form时遇到问题。将此代码包含在我的phtml脚本中的最简单方法是什么:
<script type="text/javascript">
var obj = <?php echo json_encode($php_array); ?>;
</script>
答案 0 :(得分:1)
您可以使用视图助手inlineScript()将java脚本传递给您的视图。
在你的行动$this->inlineScript()->setScript('java script here');
中
在您的观点<?php echo $this->inlineScript() ?>
您还可以使用json()帮助程序将json传递给视图中的java脚本。
答案 1 :(得分: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
以使其正常工作。