2014-03-03 50 views
2

我想在codeigniter中開發簡單的CMS ..在主視圖中有幾個鏈接到其他頁面,但我希望所有的頁面在指定的同一視圖中打開DIV無需爲每個頁面加載(AJAX LOADING)。我試圖通過AJAX調用來實現這一點,但我厭倦瞭解它爲什麼不適合我。每當我點擊鏈接時,只需從LOGIN_VIEW控制器的索引方法加載視圖。 這裏是我的CMSAJAX不工作codeigniter加載頁內相同的DIV

<script type="text/javascript"> 
     function onLinkClick(value){ 
      alert('<?php echo base_url() ?>admin/load_view/'+value); 
      $.ajax({  
       url: '<?php echo base_url() ?>admin/load_view/', 
       type: 'POST', 
       data: {'view_param': value}, 
       success: function(response) 
       { 
        //$('#mang_server').html(response); 
        alert("response recieved"); 
       } 
      }); 
      alert('after response');  
     } 
</script> 

<body> 
<div id="main"> 
    <div id="header"> <a href="" class="logo"><img src="../img/logo.gif" width="101" height="29" alt="" /></a> 
     <div id="middle"> 
      <div id="left-column"> 
       <h3>Header</h3> 
       <ul class="nav"> 
        <?php foreach($ops as $operations) 
        {$op_name = $operations['admin_op']; 
        $op_link = $operations['link_to']; 
        ?> 
        <li><a href="" id="" onclick="onLinkClick('<?php echo $op_link ;?>')"><?php echo $op_name ;?></a></li> 
        <?php } ?> 
       </ul> 
       <div id="mang_server"> </div> 

兩個警報正在鏈接查看...但是Ajax調用是搞亂。

這裏是我的控制器方法

public function index() 
{ 
    if($this->session->userdata('admin_name'!='')){ 
    $this->data['title'] = "Admin Area"; 
    $this->data['ops'] = $this->admin_model->get_admin_ops(); 
    $this->load->view('admin_view.php',$data); 
    } else { 
    $data['title'] = "Admin login"; 
    $this->load->view('admin_login.php',$data); 
    }  
} 

public function load_view($view_name) 
{  
    $data['view_link'] = $this->admin_model->load_view_model($view_name); 
    $this->load->view($data); 
} 

請告訴我,我做什麼大錯。

+0

你說的意思是:但是阿賈克斯電話已經搞亂了。 – Merlin

+0

嘗試在load_view函數 – Nilesh

+0

中傳遞像$ this-> load-> view($ view_name,$ data)這樣的視圖名稱意味着它不能以它應該工作的方式工作。它應該在div(mang_Server)中加載視圖,但它正在加載在控制器的索引方法中指定的視圖。 –

回答

0

你正在做它在錯誤的方式審議通過AJAX加載視圖

JavaScript部分下面的代碼:

$.ajax({ 

      url: '<?php echo base_url() ?>admin/load_view/', 
      type: 'POST', 
      dataType:'json', 
      data: {'view_param': value}, 
      success: function(response) 
      { 

       $('#mang_server').html(response.html_view); 

      } 
}); 

管理控制器:

public function load_view($view_name){ 

    $data['view_link'] = $this->admin_model->load_view_model($view_name); 

    // IF $data['view_link'] is the name of the view file you are trying to load 
    $response['html_view']$this->load->view($data['view_link'],'',TRUE); 
    // While loading a view in codeigniter it accepts three parameters 
    // $this->load->view("name of the view file","data to be passed to the view or not","Returning views as data"); 
// For more refer at the end of the page http://ellislab.com/codeigniter/user-guide/general/views.html 
    echo json_encode($response); 
} 
+0

Thanx @prathamesh ...但你能告訴我爲什麼你把json作爲數據類型。 –

+0

因爲我們從控制器返回json數據 –

+0

hey @ hasn-147請看看編輯過的部分。希望它清楚地表明你的疑問。 –