嘿,我是CI的新手,并且已经在互联网上搜索了一个可行的教程,但由于某种原因它无法工作。有人可以帮我提供代码:
正确编辑代码以通过ajax向数据库提交条目而无需重新加载页面?
控制器:
public function index(){
$this->load->helper('url');
$this->load->view('template');
}
function create()
{
$this->load->library('form_validation');
$this->load->helper('form');
$this->load->model('dbmodel');
$response = array();
$this->load->model('dbmodel');
$result = $this->dbmodel->addnew_row();
}
型号:
public function addnew_row() {
$data = array(
'title' => $this->input->post('title'),
'description' => $this->input->post('description'),
);
$result = $this->db->insert('books', $data);
return $result;
}
查看表单:
<h2>Create</h2>
<?php echo form_open('welcome/create', array('id'=>'form'));?>
<p>Title: <?php echo form_input('title') ?></p>
<p>Description: <?php echo form_input('description') ?></p>
<?php echo form_submit('btn_submit','Save'); ?>
<?php echo form_close();?>
查看AJAX:
// $.POST Example Request
$('#form').submit(function(eve){
eve.preventDefault();
var title = $('#title').val();
var description = $('#description').val();
url = '<?php echo site_url('welcome/create');?>'
$.ajax({
url: url,
type: 'POST',
data:{title:title, description:description
}
$(#dynamic_container).html(response.output);
});
});
答案 0 :(得分:1)
好的,首先,您需要在使用之前简要介绍jQuery.ajax()
的语法。
现在通过你在问题中提到的AJAX代码,这段代码不应该在那里
$(#dynamic_container).html(response.output);
AJAX提供Callback Function Queues
在AJAX调用成功完成之前/之后操作响应,在您使用success
的情况下将解决问题:
$.ajax({
url: url,
type: 'POST',
data:{title:title, description:description
},
success : function(response){
$(#dynamic_container).html(response.output);
}
});
您可能对使用jQuery.post()感兴趣。