我想在我的视图中显示一个特定的div
类...但首先我必须检查是否通过ajax将特定数据成功输入到数据库中,如果没有,则上面会出现其他潜水错误类一段时间然后隐藏。
这是我的JavaScript代码视图。 在这里我弹出一个对话框,如果事件发生了,我想变成一个div类,如果发生了什么是真的那么“div success message”,否则div失败消息。我想我必须从控制器传递一个特定的参数到视图,但我不知道该怎么做。
<script type="text/javascript">
$('#btn').click(function() {
var item_name = $('#item_name').val();
var cat_id = $('#cat_id').val();
if (!item_name || item_name == 'Name') {
alert('Please enter Category Name');
return false;
}
var form_data = {
item_name: $('#item_name').val(),
cat_id: $('#cat_id').val(),
ajax: '1'
};
$.ajax({
url: "<?php echo site_url('itemsController/additems'); ?>",
type: 'POST',
data: form_data,
success: function(msg) {
//$('#message').html(msg);
alert("items added successfully");
$('#item_name').val("");
}
});
return false;
});
</script>
这是我的控制器
function additems(){
//getting parameters from view
$data = array(
'item_name' => $this->input->post('item_name'),
'cat_id' => $this->input->post('cat_id')
);
$is_ajax = $this->input->post('ajax'); //or use this line
//$this->input->is_ajax_request();
$this->load->model('itemsModel');
$query = $this->itemsModel->addItemstoDB($data);
if ($query && $is_ajax){ //if the user c validated
//data variable is created becx we want to put username in session
$page['main_content'] = 'itemsView';
$this->load->view('dashboardTemplate/template',$page);
}
else
{
echo "not added";
}
}
}
模型
class ItemsModel extends CI_Model {
public function addItemstoDB($data){
$successfull = $this->db->insert('item',$data);
if ($successfull){
return true;
}else{
return false;
}
}
}
答案 0 :(得分:1)
这根本不是如何处理控制器中的ajax:
首先我假设你的模型如果插入则返回true
,如果没有则false
:
你的控制器:
function additems(){
//your processing goes here.
$result = array();
$this->load->model('itemsModel');
$query = $this->itemsModel->addItemstoDB($data);
//var_dump($query); the results will be desplayed either on your page or you can see it using firebug in firefox
if ($query ){ //&& any other condition
$result['res'] = 1;//process successful - replace 1 with any message
}
else
{
$result['res'] = 0;//process failed - replace 0 with any message
}
echo json_encode($result);//at the end of the function.
}
然后你的ajax部分:
$.ajax({
url: "<?php echo site_url('itemsController/additems'); ?>",
type: 'POST',
data: form_data,
dataType: 'json',
success: function(msg) {
if(msg.res == 1)
{
$("your div").removeClass("error").addClass("ok");
}
else{
$("your div").removeClass("ok").addClass("error");
}
}
});