我尝试使用ListView
向我的控制器插入和更新数据库中的数据。现在,我点击按钮后,我的数据正在插入和更新。但我的视图页面上的数据没有更新。我需要再次刷新页面以更新我的视图和成功消息以显示
PS:有时候会解雇,有时候不会解雇,
以下是我的ajax
的JS文件ajax
以下是我的控制器
$('#triger').click(function(){
var btn_value = $('#triger').val();
var tenant_id = $('#tenant_id').val();
var calldisp_id = $('#calldisp_id').val();
var disposition_name = $('#disposition_name').val();
var disposition_code = $('#disposition_code').val();
var email = $.map($("#tags span"), function(elem, index){
return $(elem).text();
});
var myJsonString = JSON.stringify(email);
//alert(myJsonString);
if(btn_value == 'Create'){
$.ajax({
url:"<?php echo base_url();?>admin/call_disposition/create_email_dispo_dre",
method:"POST",
data:{email:myJsonString,
disposition_name:disposition_name,
disposition_code:disposition_code,
tenant_id:tenant_id},
dataType: 'json',
success:function(data){
},
});
}
else if(btn_value == 'Update'){
$.ajax({
url:"<?php echo base_url();?>admin/call_disposition/update_email_dispo_dre",
method:"POST",
data:{email:myJsonString,
disposition_name:disposition_name,
disposition_code:disposition_code,
calldisp_id:calldisp_id,
tenant_id:tenant_id},
dataType: 'json',
success:function(data){
},
});
}
});
答案 0 :(得分:0)
在ajax更新请求中: 在成功部分:
success:function(data){
},
你需要调用页面重新加载:
window.location.reload();
所以你的代码变成了:
success:function(data){
window.location.reload();
},
答案 1 :(得分:0)
在控制器中
你必须添加
echo json_encode(array('success'=>'1'));
代替redirect('admin/call_disposition/update/'.$id);
,因为您使用了数据类型&#34; json&#34;;
并更改成功函数和ajax请求类似
success:function(data){
if(data.success=='1'){
window.location.reload();
}
}
答案 2 :(得分:0)
在执行Ajax调用时的codeigniter中,您无法从控制器函数重定向。如果您想在单击#trigger后无痕地更新页面,则必须在控制器中回显结果
echo json_encode($html_you_want_to_display);
然后在你的ajax成功子句中,你需要通过将innerHtml设置为结果来更新带有echo结果的div。希望这有帮助