4

次のような 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)); ?>

さて、すべての Javascript をscriptBlockメソッドに記述するのは非常に面倒ですが、URL に基づいてコンテンツが変化するため、外部の Javascript ファイルを含めることはできません。私が気付いていない、これを行う簡単な方法はありますか?

4

2 に答える 2

4

imageHashes 配列を受け取り、それを json_encode します。次に、スクリプトブロックに対して、次のようなことができます

echo $this->Html->scriptBlock('var jsArray = ' . $json_encoded_array . ';', array('inline' => false)); 
于 2012-07-18T21:29:30.993 に答える
3

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'); ?>
于 2016-06-20T17:01:01.200 に答える