我認爲它應該相當容易,我根本無法找到答案。CodeIgniter + jQuery .ajax表單在表格行中提交返回結果
我正在使用Codeigniter進行簡單的CRUD應用程序。它在表格中顯示結果。我所做的是使用jQuery .ajax
來提交表單。它工作(幾乎)完美。
我可以提交沒有重新加載的表單,但結果不會顯示,除非我重新加載頁面。現在我使用location.reload();
,但它沒有任何意義,畢竟我的意圖是不重新加載頁面。
我知道我應該回顯數據,但不知道如何使用CI來完成。
一些內部:
jQuery的一部分
$("#add_form").submit(function(e) {
e.preventDefault();
var dataString = $("#add_form").serialize();
$.ajax({
type: "POST",
url: "add",
data: dataString,
success: function() {
$("#lightbox").fadeIn(300).delay(1000).fadeOut(300);
$("#notification-box").show();
$("#notification-box").html('<p>Saving</p>');
$("#addrow").hide();
location.reload();
}
});
});
控制器部分
function add()
{
if(!$this->ion_auth->logged_in())
{
redirect('auth/login', 'refresh');
}else
{
// User ID
$user_data = $this->ion_auth->get_user();
$user = $user_data->id;
// Prepare post data
$data['user'] = $user;
$data['cdate'] = date('Y-m-d');
$data['ctime'] = date('H:i:s');
$data['mdate'] = date('Y-m-d');
$data['mtime'] = date('H:i:s');
$pair_value = $this->input->post('vpair');
if(empty($pair_value))
{
$data['pair'] = "no pair";
}else
{
$data['pair'] = $pair_value;
}
$reason_value = $this->input->post('reason');
if(empty($reason_value))
{
$data['reason'] = "";
}else
{
$data['reason'] = $reason_value;
}
$comment_value = $this->input->post('comment');
if(empty($comment_value))
{
$data['comment'] = "";
}else
{
$data['comment'] = $comment_value;
}
// Insert_data
$this->journal_model->add_trade($data);
}
}
幫助?任何人?
乾杯,
/J
對於初學者'網址:「添加」,'在你的JS是不是一個好的開始,請告訴我你的控制器名稱,如果你做了Ajax,你不能做重定向,不要這樣工作,請把你的完整控制器。 – RobertPitt 2010-09-11 15:02:13
好吧......它當然可以工作......因爲讀取和添加功能都在同一個控制器中。我用過很多次,從來沒有遇到過問題。 – 2010-09-11 15:08:03
我從來沒有說過它不工作,我指的是你的路徑結構,在你的頭部模板中你應該有一個包含你的site_root的JavaScript變量,然後在js文件中你應該使用'url:site_root +「控制器/ method/param「,」這會給你更多的穩定性。 – RobertPitt 2010-09-11 15:10:31