我有一个用户模块,用户可以从个人资料页面设置状态消息(推文)。
当某人单击“共享”时,应该转到某个操作并保存状态消息。我不确定如何在CakePHP中执行此操作。
我会使用jQuery。如果你能指出我正确的文件。这将是非常有帮助的
我是Ajax的新手。
答案 0 :(得分:2)
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属性来执行此操作。
答案 1 :(得分:1)
表单是通过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。当然,这只是重点,但它们说明了关注点的关键分布:
希望有所帮助。