我想在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