0

我需要将一个数组从我的 zend 操作传递到视图,可能是通过使用尚未决定的 ajax。为了做到这一点,我需要插入一个脚本元素并在其中定义 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()助手将 json 传递给您视图中的 java 脚本。

于 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_encodeZend_Json::encode使其工作。

于 2012-05-18T18:54:48.760 回答