使用CakePHP生成Javascript视图块

Generating Javascript view block with CakePHP

本文关键字:视图 Javascript 生成 CakePHP 使用      更新时间:2023-11-09

考虑这样的URL:

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而更改。有没有一种我不知道的更简单的方法可以做到这一点?

获取您的imageHashes数组并对其进行json_encode。然后,对于您的脚本块,您可以执行类似的操作

echo $this->Html->scriptBlock('var jsArray = ' . $json_encoded_array . ';', array('inline' => false)); 

对于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'); ?>