一个Ajax调用,笨后加载视图(loading a view after an ajax call,

2019-08-17 06:15发布

我已经从JavaScript中的控制器的方法Ajax调用,在控制器的方法应该是加载视图(如,在屏幕上显示一个新的页面),虽然一切看起来正常,新的观点似乎并没有加载屏幕上。 因为,我传递数组变量,包含数据在视图中使用我不能使用页眉或windows.location。

该网页是网络标签下看到(子预览选项卡中,同时选择AJAX)的Chrome浏览器的调试控制台。 不过,最主要的屏幕保持原样。

如果有人已经遇到了类似的问题,或有一个解决方案,请帮助我。

谢谢!!

Answer 1:

确定这里是你做错了什么。

当你使用Ajax请求的页面不返回你的页面。

当您使用$这 - >负载>视图( '页面名称',$ datapassed); 它加载的观点和这就是为什么你什么也看不到。

你所要做的是使用

$data=$this->load->view('pagename',$datapassed, TRUE);

它的作用是将返回该页面并将其保存在$数据后,您可以使用打印

$this->set_output($data); 

在AJAX结果收到这和一个div加载它。

如果你想刷新整个页面,您可以使用

$(body).html(result);

你要明白,你需要通过提供负载认为,第三个参数发送html页面。



Answer 2:

在控制器类

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>


Answer 3:

请记住,数据类型必须是“HTML”

$.ajax({
        type: 'POST',
        url: '<?php echo base_url(); ?>/controllerName/functionName',
        dataType: "html",
        success: function (response) {
                   $("#oh").html(response);
                },
        error: function (error_) {
                    MYLOG(error_);
                }
       });


文章来源: loading a view after an ajax call, CodeIgniter