簡體   English   中英

AJAX POST無法在CODEIGNITER中加載div視圖

[英]AJAX POST not working to load div view in CODEIGNITER

幫我解決我的Ajax問題...好吧,我想做的是,我可能在主視圖中有一個側欄導航面板。.所有導航鏈接都是從database.now中獲取的。當我單擊任何鏈接時,我想要的是它應在相同的主視圖中但在中間面板中加載CI視圖div,如果單擊第二個鏈接,則應將新的div替換為舊視圖div,而不加載頁面。單擊后要加載的Divs放置在的views文件夾中項目(CI視圖文件夾)。 現在我嘗試的是單擊鏈接時,我將視圖名稱調用ajax,同時將數據傳遞到URL(/ controller / method),控制器加載該視圖,而ajax成功時,該視圖應以以下方式加載到中間面板中:新股

查看代碼:

腳本代碼:

<script type="text/javascript">

        $(document).ready(function(){

        $("a.links").click(function(e){

        e.preventDefault();
        alert("alert on click");
        var platform_id = $(this).attr('id');
        alert(platform_id);


        $.ajax({

             url: '<?php echo base_url() ?>admin/load_view', 
             type: 'POST',
             datatype:'json',
             data: {'view_param': platform_id},
             success: function(response)
             {
                 if (response.success == 1)
                    {
                       alert('success');
                    }
                    else{
                    alert('unseccessful');   //just a alert to see if response is successful              
                    }       
             },
             error: function(response){
                    alert(response.message);
                }

        }); 


        })
        })

        </script>


<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="<?php echo $op_name ; ?>" class="links"><?php echo $op_name ;?></a></li>
            <?php } ?>
      </ul>
          <a href="http://all-free-download.com/free-website-templates/" class="link">Link here</a> <a href="http://all-free-download.com/free-website-templates/" class="link">Link here</a> 
          </div>

中間面板div:

<div id="mang_server"> </div>

控制器代碼:

public function load_view(){

$view_name = $this->input->post('view_param');
log_message('var dump', var_export($view_name));
$data['view_link'] = $this->admin_model->load_view_model($view_name);
$response['html_view'] = $this->load->view($data['view_link'],'',TRUE);
echo json_encode($response);
//$this->load->view($data);
}

我嘗試調試它,但同時我也觀察到它在ajax中成功了,但是它提醒了它的其他部分。

錯誤部分警報:

'Manage Servers'{"success":1,"message":"Some success message","html_view":"<table class=\"listing form\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr>\n            <th class=\"full\" colspan=\"2\">Header Here<\/th>\n          <\/tr>\n          <tr>\n            <td class=\"first\" width=\"172\"><strong>Lorem Ipsum<\/strong><\/td>\n            <td class=\"last\"><input type=\"text\" class=\"text\" \/><\/td>\n          <\/tr>\n          <tr class=\"bg\">\n            <td class=\"first\"><strong>Lorem Ipsum<\/strong><\/td>\n            <td class=\"last\"><input type=\"text\" class=\"text\" \/><\/td>\n          <\/tr>\n          <tr>\n            <td class=\"first\"><strong>Lorem Ipsum<\/strong><\/td>\n            <td class=\"last\"><input type=\"text\" class=\"text\" \/><\/td>\n          <\/tr>\n          <tr class=\"bg\">\n            <td class=\"first\"><strong>Lorem Ipsum<\/strong><\/td>\n            <td class=\"last\"><input type=\"text\" class=\"text\" \/><\/td>\n          <\/tr>\n        <\/table>\n        <p>&nbsp;<\/p>"}

在您的控制器中,您沒有分配前端所需的$response['success']$response['message'] 控制器代碼更改為

public function load_view()
{
    $view_name = $this->input->post('view_param');
    log_message('var dump', var_export($view_name, true));
    $data['view_link'] = $this->admin_model->load_view_model($view_name);

    $response['success'] = 1;
    $response['message'] = "Some success message";
    $response['html_view'] = $this->load->view($data['view_link'],'',TRUE);
    echo json_encode($response);
    exit;
}

希望這可以幫助 :)

更新:

注意:log_message('var dump', var_export($view_name, true)); var_export()需要第二個參數來返回值。 否則,它將輸出文本並導致ajax響應出現問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM