【CakePHP】ViewでJavaScriptを直接記述するには(記述した場所に出力する)

2019年7月29日

バージョン:CakePHP 2.x

こちらでhead内にJavaScriptを出力させる方法を書きましたが、
コードを書いたその場所に出力させる方法についてです。

オプションのinlineをtrueにしただけでは表示されず、

$this->Html->scriptStart
$this->Html->scriptEnd
$this->Html->scriptBlock

を「echo」しなければいけないようです。

inlineをfalseにする場合はechoがなくとも出力されませんが、
trueの場合は注意が必要です。

• scriptStart

<?php
	echo $this->Html->scriptStart(array('inline' => true));
	echo
<<<END
		alert('テスト');
END;
	echo $this->Html->scriptEnd();
?>

• scriptBlock

<?php
$script = "alert('テスト');";
echo $this->Html->scriptBlock($script, array('inline' => true));
?>

実際の出力は下記のような形になります。

<script type="text/javascript">
//<![CDATA[
		alert('テスト');
//]]>
</script>

参考:公式サイト(HtmlHelper)

スポンサーリンク