2017-07-05 65 views
0

當我在我的選擇框中輸入時,結果總是顯示「結果無法加載」。我在我的框中使用CodeIgniter,在我的選擇框中使用select2,並且是CodeIgniter和Select2中的新手。我已經通過所有可以與我的問題相關的文章進行搜索,但它仍然無法正常工作。我想我搞砸了我的ajax,但我不知道如何以及在哪裏修復它。Select2結果不能在CodeIgniter中加載

這裏是我的控制器

<?php 
    class Admin extends CI_Controller{ 
     function __construct(){ 
      parent::__construct(); 

      $this->load->model('admin_model'); 
     } 

     function search_book(){ 
      $booksClue = $this->input->get('booksClue'); 
      $data_book = $this->admin_model->get_book($booksClue, 'id_book'); 
      echo json_encode($data_book); 
     } 

    } 
?> 

這裏是我的模型

<?php 
    class Admin_model extends CI_Model{ 

     function get_book($booksClue, $column){ 
      $this->db->select($column); 
      $this->db->like('id_book', $booksClue); 
      $data = $this->db->from('book')->get(); 
      return $data->result_array(); 
     } 
    } 
?> 

這裏是我的看法

<html> 
<head> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script> 
    <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" rel="stylesheet" /> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js"></script> 
</head> 
<body> 

    <script type="text/javascript"> 
     $(document).ready(function(){ 
      $('.searchingBook').select2({ 
       placeholder: 'Masukkan ID Buku', 
       minimumInputLength: 1, 
       allowClear: true, 
       ajax:{ 
        url: "<?php echo base_url(); ?>/admin/searchbook", 
        dataType: "json", 
        delay: 250, 
        data: function(params){ 
         return{ 
          booksClue: params.term 
         }; 
        }, 
        processResults: function(data){ 
         var results = []; 

         $.each(data, function(index, item){ 
          results.push({ 
           id: item.id_book, 
           text: item.id_book 
          }); 
         }); 
         return{ 
          results: results 
         }; 
        } 
       } 
      }); 
     }); 
    </script> 

    <table> 
     <tr> 
      <td><b>ID Buku</b></td> 
      <td> : </td> 
      <td> 
       <select class="searchingBook" style="width: 500px"> 
        <option></option> 
       </select> 
      </td> 
     </tr> 
    </table> 
    <br><br> 

</body> 
</html> 

非常感謝您的幫助!

+0

爲什麼你認爲在代碼片斷功能窗格都有明確的標識「的JavaScript」,「HTML」和「CSS」?答:因爲你不能在瀏覽器中運行PHP。編輯。 – Sparky

回答

0

更新你的模型功能象下面這樣:

function get_book($booksClue, $column){ 
    $this->db->select($column); 
    $this->db->from('book'); 
    $this->db->like('id_book', $booksClue); 
    return $this->db->get()->result_array(); 
} 
+0

它仍然不適合我... – Hanny

+0

processResults'函數內'console.log(data)'的結果是什麼? –

+0

它沒有顯示我的控制檯中的任何東西。它是否應該像id_book一樣? 但是,當我檢查我的來源,同時在選擇框中輸入「D」字時,顯示GET http:// localhost:81/publisher/admin/searchbook?booksClue = D 404(Not Found)jquery.js:8526。這與我的問題有關嗎? – Hanny