如何将数组插入zend_表单中的javascript

如何将数组插入zend_表单中的javascript,javascript,arrays,zend-framework,Javascript,Arrays,Zend Framework,我需要将一个数组从我的zend操作传递到视图,可能是通过使用ajax,这有待决定。为了做到这一点,我需要插入一个script元素并在其中定义javascript变量,然后将我的php数组传递给该变量,但是我在将script元素插入zend_表单时遇到了问题。将此代码包含到我的phtml脚本中最简单的方法是什么: <script type="text/javascript"> var obj = <?php echo json_encode($php_array); ?&

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

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

var-obj=;

您可以使用视图帮助器将java脚本传递给视图。

在您的操作中,
$this->inlineScript()->setScript('java script here')

在您的视图中重复此操作


您还可以使用帮助器将json传递给视图中的java脚本。

RockyFord的解决方案在我看来过于复杂。只需将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>
//控制器
$this->view->php_array=array(…);
//看法
echo$this->form;
var-obj=;
它会像你期望的那样工作


使用JSON视图助手并不理想,因为它会修改标题,并且默认情况下会禁用布局。您可以将
json\u encode
替换为
Zend\u json::encode
,使其即使在PHP中没有加载json\u扩展也能正常工作。

我不知道您为什么要这样做,但您不能将javascript添加到表单中。只需将javascript发送到视图,并在表单后回显js。您不能只回显js,它不会被执行。我也发现了。这是一件很简单的事情,但我花了很长时间在谷歌上搜索。再次感谢您的帮助这是一个伟大的解决方案,当您只需要做一次。您是对的。如果您需要在多个位置使用代码,最好将其移动到extnal JS,并使用
appendScript($filename)