【发布时间】:2010-12-31 17:03:46
【问题描述】:
我正在学习 AJAX,并从 Scratch 借用了 NETTUTS Codeigniter 的脚本:AJAX 该脚本本身可以完美地适应我的表单,但是它不会根据控制器更新数据库。 Firebug 说这篇文章在 AJAX 脚本中运行良好。我想我的问题是,我如何以及在哪里无法启动控制器?
form_open 脚本
echo form_open('contacts/entry', $form);
Ajax 脚本(在我展示的上面有一个验证脚本可以正常工作)
var form_data = {
fname: $('#fname').val(),
lname: $('#lname').val(),
email: $('#email').val(),
phone: $('#phone').val(),
relate: $('#relate').val(),
ajax: '1'
};
$.ajax({
url: "<?php echo site_url('contacts/entry'); ?>",
type: 'POST',
data: 'form_data',
success: function() {
$('#status').text('Update successful!');
}
});
return false;
});
请注意,我在 form_data 中包含了“AJAX:1”
控制器
function entry()
{
if ($this->input->post('ajax')) {
$data = array
(
'fname' => $this->input->post('fname'),
'lname' => $this->input->post('lname'),
'email' => $this->input->post('email'),
'phone' => $this->input->post('phone'),
'relate' => $this->input->post('relate'),
);
//removed validation set rules to shorten the question
if ($this->form_validation->run() == TRUE)
{
$this->db->insert('contacts', $data);
$this->index();
} else
{
$this->index();
}
}
}
使用“if ($this->input->post('ajax'))”是启动控制器的正确方法吗?如果没有 jquery,表单本身可以正常工作并运行控制器。所以我知道这两个单独的部分是有效的,它们只是没有啮合。谢谢
【问题讨论】:
标签: jquery ajax codeigniter