【发布时间】:2010-10-14 07:55:24
【问题描述】:
我有一个用户模块,用户可以在其中从个人资料页面设置他们的状态消息(推文)。
当有人点击分享时,它应该转到一个操作并保存状态消息。我不确定如何在 CakePHP 中做到这一点。
我想使用 jQuery。如果你能指出我正确的文件。会有很大帮助的
我是 Ajax 新手。
【问题讨论】:
标签: javascript ajax cakephp
我有一个用户模块,用户可以在其中从个人资料页面设置他们的状态消息(推文)。
当有人点击分享时,它应该转到一个操作并保存状态消息。我不确定如何在 CakePHP 中做到这一点。
我想使用 jQuery。如果你能指出我正确的文件。会有很大帮助的
我是 Ajax 新手。
【问题讨论】:
标签: javascript ajax cakephp
CakePHP 有一个Js Helper,它默认使用 JQuery 库。 您正在寻找的方法是submit() 方法。
一个示例用法是:
<?php echo $form->create('Tweet'); ?>
<!-- form elements -->
<?php echo $this->Js->submit('Share',
array(
'update' => '#content'
)
); ?>
元素 #content 的内容将随着控制器返回的 HTML 发生变化。
在将提交 ajax 表单的操作中,在上面的示例中为 add(),您可能希望在检测到 ajax 请求时将布局更改为 ajax。您可以使用isAjax() 方法和控制器的$layout 属性来做到这一点。
【讨论】:
通过 ajax 提交表单的方式与没有使用 CakePHP 的方式完全相同。如果是我,我会这样做......
在我看来:
<?php echo $this->Html->script(
array( 'vendors/jquery.min', 'customjs' )
, array( 'inline' => false, 'once' => true )
) ?>
<?php echo $this->Form->create( ... ) ?>
... your form content here ...
<?php echo $this->Form->end( 'Share' ) ?>
在自定义 Javascript 文件中 (/js/custom.js):
$(function() {
$('#your-form' ).submit( function() {
// make your ajax call
$.post( ... );
return false; // prevent a new request
});
});
最后,创建一个新的控制器和/或操作来处理您的 ajax 调用所请求的 URL。当然,这些只是亮点,但它们说明了关注点的主要分布:
希望对您有所帮助。
【讨论】: