簡體   English   中英

Codeigniter:AJAX調用后返回JSON數據,但無法成功運行:function()

[英]Codeigniter: JSON data is returned after AJAX call but it cannot run the success: function()

我的阿賈克斯

 // Load category function function load_category() { $.ajax({ url: "<?php echo base_url() ?>index.php/admin/departments", type: "GET", dataType: 'json', success: function(data){ $('#category-row').html(data); }, error: function(){ alert('Error....'); } }); } // Fix tooltip not work $('body').tooltip({ selector: '[data-toggle="tooltip"]' }); }); 

我的桌子

我要在這里回顯該數據...

 <div class="row"> <div class="col-sm-12"> <div class="card-box table-responsive"> <table id="datatable-responsive" class="table table-striped table-bordered dt-responsive nowrap" cellspacing="0" width="100%"> <thead> <tr> <th>Dep't Name</th> <th>Description</th> <th>Consultancy Amount</th> <th>Doctor's Amount</th> <th>Manage Department</th> </tr> </thead> <tbody id="category-row"> </tbody> </table> </div> </div><!-- end col --> </div> <!-- end row --> 

現在我的Contoller

管理員/部門

 public function departments()
{

    $table ='';

    $departments = $this->admin_model->departments();

    if(count($departments)>0)
    {
      foreach ($departments as $dept)
      {
        $table.='<tr id="row-id-'.$dept->Dept_id.'">';
        $table.='<td>'.$dept->Dept_name.'</td>';
        $table.='<td>'.$dept->Description.'</td>';
        $table.='<td>'.$dept->Consultancy_amount.'</td>';
        $table.='<td>'.$dept->Doctor_Percentage.'</td>';
        $table.='<td>';
        $table.='<a href="#" data-toggle="modal" data-target="#myModalUpdate"><i class="glyphicon glyphicon-edit" data-toggle="tooltip" title="EDIT DEPARTMENT"></i></a> |';
        $table.='<a href="#" data-toggle="modal" data-target="#myModalDelete"><i class="glyphicon glyphicon-trash" data-toggle="tooltip" title="DELETE DEPARTMENT"></i></a>';
    $table.='</td>';
    $table.='</tr>';
      }
      echo json_encode($table);     
   }
}

實際發生的是使用load_category()函數打開窗口。 但是,當我訪問它時,它作為JSON如下所示

"ENT<\/td>Ear, Nose and Throat<\/td>30000<\/td>40<\/td><\/i><\/a> |<\/i><\/a><\/td><\/tr>Cancer<\/td>Cancer<\/td>100000<\/td>50<\/td><\/i><\/a> |<\/i><\/a><\/td><\/tr>ENT<\/td>Ear<\/td>40000<\/td>34<\/td><\/i><\/a> |<\/i><\/a><\/td><\/tr>"

我完全困惑為什么它無法運行成功功能並將數據回顯到我想要的位置。

非常感謝你

我不確定您是否要在表主體( $('#category-row').html(data); )上執行.html()輸出,因此這可能就是問題所在。 如果您想添加行,我認為您需要進行追加。

$("#category-row").append(data);

另外,我可能會建議使用另一種解析數據的方法。 我將通過json_encode返回整個$departments結果,然后在成功函數中進行解析,例如下面的示例。 在該示例中,我還更改了控制器的count用法, 如果不為空繼續使用( !empty($departments) )。

控制器功能:

public function departments()
{
    $departments = $this->admin_model->departments();

    if(!empty($departments)) {
        echo json_encode($departments);     
    }
}

jQuery“成功”調整:

success: function(data){
    var tableRows = '';

    $.each(data, function(index, dept) {

        tableRows = tableRows + '<tr id="row-id-' + dept.Dept_id + '"><td>' + dept.Dept_name + '</td><td>' + dept.Description + '</td><td>' + dept.Consultancy_amount + '</td><td>' + dept.Doctor_Percentage + '</td><td><a href="#" data-toggle="modal" data-target="#myModalUpdate"><i class="glyphicon glyphicon-edit" data-toggle="tooltip" title="EDIT DEPARTMENT"></i></a> | <a href="#" data-toggle="modal" data-target="#myModalDelete"><i class="glyphicon glyphicon-trash" data-toggle="tooltip" title="DELETE DEPARTMENT"></i></a></td>/tr>';

    });

    $("#category-row").append(tableRows);
}

更多的思考...如果您想測試成功的根源,請發出一個簡單的警報(“成功”); 或console.log('success')那里,看看它是否啟動。 也許您的查詢為空。

無論如何,希望這會有所幫助。

整個問題是我在底部而不是頂部加載了JQuery。 這使我無法使用它。

我得出的結論是,如果ypu在底部直接加載jquery,請使用以下命令:

 (function($) {

//All your functions go here. Be it Ajax!

        }(jQuery));

謝謝

暫無
暫無

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

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