如何将数组插入到zend_form中的javascript中

时间:2012-05-18 12:49:58

标签: javascript arrays zend-framework

我需要将一个数组从我的zend动作传递给视图,可能是使用ajax,这还有待决定。为了做到这一点,我需要插入一个脚本元素,并在其中定义javascript变量,然后我将传递我的php数组,但我在将脚本元素插入zend_form时遇到问题。将此代码包含在我的phtml脚本中的最简单方法是什么:

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

2 个答案:

答案 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以使其正常工作。