请帮助我,如果有人能给我一个例子如何使用ajax与cakephp 2.3.0一个例子是这样的
<?php echo $this->html->link('Original', '#',
array('onclick'=>'return false;', 'id'=>'remanufactured-link', 'class'=>'get-type-product-link')); ?>
<div id="content">
</div>
Run Code Online (Sandbox Code Playgroud)
当我点击original链接时,带有id的div content会发生变化.我怎么能用cakephp 2.3.0做到这一点?
Ric*_*ome 57
与常规HTML/PHP和Ajax相比,使用CakePHP与Ajax没有太大区别.
以下是Cake APP中ajax调用和响应的示例:
jQuery的:
$.ajax({
url: '/types/fetch/original',
cache: false,
type: 'GET',
dataType: 'HTML',
success: function (data) {
$('#context').html(data);
}
});
Run Code Online (Sandbox Code Playgroud)
(不要忘记更改url参数以匹配您的设置).
这将向您的Types控制器发出ajax请求,并使用参数'original'调用方法fetch().
您的TypesController看起来像这样:
class TypesController extends AppController {
public $components = array(
'RequestHandler'
);
public function fetch($type) {
$data = $this->Type->find('all', array(
'conditions'=>array(
'Type.type'=>$type
)
);
$this->set('data', $data);
}
}
Run Code Online (Sandbox Code Playgroud)
添加RequestHandler组件意味着在呈现Ajax请求时,Cake将自动使用最小的Ajax布局.通常这是在AppController中添加的,因此所有控制器都可以使用它.
以及相关的观点:
/app/View/Types/fetch.ctp
<ul>
<?php foreach($data as $item): ?>
<li><?php echo $item['Type']['name']; ?></li>
<?php endforeach; ?>
</ul>
Run Code Online (Sandbox Code Playgroud)
Vij*_*ary 13
见下面的例子:
$.ajax({
dataType: "html",
type: "POST",
evalScripts: true,
url: '<?php echo Router::url(array('controller'=>'your-controller','action'=>'your-action'));?>',
data: ({type:'original'}),
success: function (data, textStatus){
$("#div1").html(data);
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
50225 次 |
| 最近记录: |