我想在CodeIgniter应用程序中使用jQuery提交表单。但是,Controller中调用的函数一直希望将用户发送到不存在的页面(与Controller函数名称相同)。使用jQuery和CodeIgniter提交表单而不刷新页面
我已经试过这样:
$('#contactForm').submit(function() {
});
这:
$('#contactForm').submit(function() {
dataString = $("#contactForm").serialize();
$.ajax({
type:"POST",
url:"<?php echo base_url(); ?>about/contactSubmit",
data:dataString,
success:function (data) {
alert('test');
}
});
return false; //stop the actual form post !important!
});
形式是一个简单的表格ID为 “联系形式”。 jQuery提交功能的作用在于它发送到Controller中的“contactSubmit”函数。这个功能看起来是这样的:
public function contactSubmit()
{
$this->load->model('customer_model');
$this->customer_model->addCustomer();
}
所以,在添加在数据库中的信息模型调用一个addCustomer功能。所有的工作正常。但随后它会尝试打开一个不存在的“customerSubmit”页面,这就是我想要避免的。我只是希望它保持在同一页面上,它有一个jQuery函数用于告诉用户表单已被提交。
那么我该如何做到这一点?
编辑:
它似乎不被发送到由控制器功能contactSubmit一个新的页面,关键是要在提交jQuery函数返回false,从关于这个问题,我可以找到每一个教程来判断,但。 ..当我确实包含它时,Controller函数根本不会被调用。这意味着只有上面的第一个选项确实调用了Controller函数(即.submit没有返回false)。
那么我在这里做错了什么?如果我应该使用提交将数据传递给数据库,但是“返回false”会阻止它实际调用Controller中的函数?
编辑2: 找到了答案,请参阅我对Christophs发表的评论!
谁试图打开customerSubmit页? – demalexx 2012-02-08 16:48:33
好吧,没有人试图,但事实是我需要调用一个函数来将数据添加到数据库中,当我这样做时,该函数将用户传递到应该与Controller函数名称相对应的页面。这就是我不想... – Anders 2012-02-08 20:03:58
@AndersSvensson我不熟悉PHP,但你看过这个答案[这里](http://stackoverflow.com/questions/5098945/submit-external-form-不,离开页式现场)? – sinemetu1 2012-02-11 16:28:48