我正在尝试创建一个简单的表单来使用 ajax 将数据提交到数据库。这是我的看法
<?php echo $this->Html->script('jquery', FALSE); ?>
<?php echo $this->Html->script('validation', FALSE); ?>
<div id="success"></div>
<h2>Contact Us</h2>
<?php
echo $this->Form->create();
echo $this->Form->input('name', array('id'=>'name'));
echo $this->Form->input('email', array('id'=>'email'));
echo $this->Form->input('message', array('id'=>'message'));
echo $this->Js->submit('Send', array(
'before'=>$this->Js->get('#sending')->effect('fadeIn'),
'success'=>$this->Js->get('#sending')->effect('fadeOut'),
'update'=>'#success'
));
echo $this->Form->end();
?>
<div id="sending" style="display: none; background-color: lightgreen;">Sending...</div>
控制器
class MessagesController extends AppController{
public $helpers = array('Js');
public $components = array('RequestHandler');
public function index(){
if(!empty($this->data)){
if($this->Message->save($this->data)){
if($this->request->isAjax()){
$this->render('success','ajax');
}else{
$this->Session->setFlash('Message sent');
$this->redirect(array('action'=>'index'));
}
}
}
}
}
它不是通过 ajax 发送表单。实际上我是 cakephp 的新手,这是我第一次在 cakephp 中使用 ajax。而且我想知道我可以在cake php中使用codeigniter或简单的php类似的表单提交语法。例如像这样
<script>
$('#btn').click(function(event) {
form = $("#form").serialize();
$.ajax({
type: "POST",
url: "<?php echo site_url('categoryController/addCategory'); ?>",
data: form,
success: function(data){
$('.modal').modal('hide');
$(".success").fadeIn(500).delay(2000).fadeOut(500);
$("#form")[0].reset();
//Unterminated String constant fixed
}
});
event.preventDefault();
return false; //stop the actual form post !important!
});
</script>