我已经从JavaScript中的控制器的方法Ajax调用,在控制器的方法应该是加载视图(如,在屏幕上显示一个新的页面),虽然一切看起来正常,新的观点似乎并没有加载屏幕上。 因为,我传递数组变量,包含数据在视图中使用我不能使用页眉或windows.location。
该网页是网络标签下看到(子预览选项卡中,同时选择AJAX)的Chrome浏览器的调试控制台。 不过,最主要的屏幕保持原样。
如果有人已经遇到了类似的问题,或有一个解决方案,请帮助我。
谢谢!!
我已经从JavaScript中的控制器的方法Ajax调用,在控制器的方法应该是加载视图(如,在屏幕上显示一个新的页面),虽然一切看起来正常,新的观点似乎并没有加载屏幕上。 因为,我传递数组变量,包含数据在视图中使用我不能使用页眉或windows.location。
该网页是网络标签下看到(子预览选项卡中,同时选择AJAX)的Chrome浏览器的调试控制台。 不过,最主要的屏幕保持原样。
如果有人已经遇到了类似的问题,或有一个解决方案,请帮助我。
谢谢!!
确定这里是你做错了什么。
当你使用Ajax请求的页面不返回你的页面。
当您使用$这 - >负载>视图( '页面名称',$ datapassed); 它加载的观点和这就是为什么你什么也看不到。
你所要做的是使用
$data=$this->load->view('pagename',$datapassed, TRUE);
它的作用是将返回该页面并将其保存在$数据后,您可以使用打印
$this->set_output($data);
在AJAX结果收到这和一个div加载它。
如果你想刷新整个页面,您可以使用
$(body).html(result);
你要明白,你需要通过提供负载认为,第三个参数发送html页面。
在控制器类
function get_view_ajax()
{
$data['username] = $_POST['username];
$response = $this->load->view('radius/radius_corporate_graph',$data,TRUE);
echo $response;
}
鉴于文件在您发起Ajax调用
$('#button').click(function(){
var username = $('#username').val();
$.ajax({
type:'POST',
url:"<?php echo base_url(); ?>controller_name/get_view_ajax/",
data: "username="+username,
success:function(msg){
$("#div_result").html(msg);
},
error: function(result)
{
$("#div_result").html("Error");
},
fail:(function(status) {
$("#div_result").html("Fail");
}),
beforeSend:function(d){
$('#div_result').html("<center><strong style='color:red'>Please Wait...<br><img height='25' width='120' src='<?php echo base_url();?>img/ajax-loader.gif' /></strong></center>");
}
});
});
<div id="div_result">
<a href="#" id="button">Click here </a>
上控制器功能(extra_info.php)被装载另一视图文件上get_view_ajax功能refered
<h1>This page is called from ajax function </h1>
请记住,数据类型必须是“HTML”
$.ajax({
type: 'POST',
url: '<?php echo base_url(); ?>/controllerName/functionName',
dataType: "html",
success: function (response) {
$("#oh").html(response);
},
error: function (error_) {
MYLOG(error_);
}
});