cakephp菜鳥筆記——Js引擎jQuery使用

cakephp的ajax默認綁定prototype,而本人接觸js一開始就是jQuery控,閒話不多說,直接講講我用Js的helpers的引擎是jQuery庫的過程。

	echo $this->Html->script('jquery');
這句話就是開啓了jQuery庫的支持。並且需要app_controller.php裏面添加Js helpers的支持。

	echo $this->Js->writeBuffer(); // Write cached scripts
這句話要放在body標籤結束前,特別是用ajax替換html頁面內容時,這句話同樣要出現在替換與被替換的內容中,儘量不要放在layout裏面。

如果出了使用jQuery庫之外,還要和其他庫一起使用的話,

	$this->Js->JqueryEngine->jQueryObject = '$j';
	print $this->Html->scriptBlock('var $j = jQuery.noConflict();', 
	array('inline' => false)); //Tell jQuery to go into noconflict mode
以上準備好後,就開始可以使用Js engine。

我一般查看

        http://api13.cakephp.org/class/js-base-engine-helper  

        http://api13.cakephp.org/class/js-helper

還有http://book.cakephp.org/1.3/en/view/1596/Javascript-engine-usage這3個地方,瞭解API和用例。

下面是一個下拉框值變化的時候提交表單的例子

<?php echo $this->Form->input('list1',array('type'=>'select','options'=>$cTaxonomy));?>
	<?php 
		$this->Js->get('#TaxonomyList1')->event('change', $this->Js->request( 
			array('controller' => 'Products', 'action' => 'getTaxonomy'), 
			array( 
			'update' => '#searchProducts', 
			'async' => true, 
			'dataExpression' => true, 
			'method' => 'post', 
			'data' => $js->serializeForm(array('isForm' => false, 'inline' => true)) 
			) ) ); 
	?>
可以看到method是post的,我沒有用get是因爲不知道如何取得下拉框選中的值。

	$this->Js->get('#element');
	$result = $this->Js->effect('fadeIn');

	//$result contains $("#foo").fadeIn();
還有effect事件,基本都可以使用jQuery裏面內置的動畫效果。http://book.cakephp.org/1.3/en/view/1593/Methods 這個頁面有詳細的說明如何用。我就不再仔細詳述了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章