考虑这样的网址:
http://site.com/upload/qeSJGs,ZWURb4,qdMMTZ,yM62UX,RlwwWT,ecw7s1
我需要将,
分隔的所有6个字符串都放到Javascript数组中并插入到我的页面中。这是我的控制器动作:
public function upload($imageHashes) {
$this->set('title_for_layout', 'Uploads successful');
$this->set('imageHashes', explode(',', $imageHashes);
$this->layout = 'complex';
}
在我的视图文件中我有这个:
<?php echo $this->Html->scriptBlock('', array('inline' => false)); ?>
现在,在scriptBlock
方法中编写所有Javascript会非常麻烦,但我不能包含外部Javascript文件,因为内容会根据URL进行更改。是否有一种更容易实现的方法,我不知道?
答案 0 :(得分:4)
获取imageHashes数组并对其进行json_encode。然后,对于您的脚本块,您可以执行类似
的操作echo $this->Html->scriptBlock('var jsArray = ' . $json_encoded_array . ';', array('inline' => false));
答案 1 :(得分:2)
对于Cakephp 2.x和Cakephp 3.x您可以使用:
在视图或模板文件中:
<?php $this->Html->scriptStart(array('block' => 'scriptBottom', 'inline' => false)); ?>
$(document).ready(function(){
console.log('OK');
});
<?php $this->Html->scriptEnd(); ?>
在布局文件中:
<?= $this->fetch('scriptBottom'); ?>