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 这个页面有详细的说明如何用。我就不再仔细详述了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章