2017-06-21 70 views
0

我正在使用自動完成到我的項目,它是正常工作,顯示記錄像下面的圖像。在codeigniter匹配後自動完成擦除不工作

enter image description here

,但是當我輸入更多信文本結果仍然低於同樣喜歡的圖像。

enter image description here

那麼,如何可以將其刪除和結果應當顯示匹配data.my視圖文件是

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-autocomplete/1.0.7/jquery.auto-complete.js"></script> 
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js"></script> 
<!-- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script> --> 
<script type="text/javascript" src="<?php echo base_url(); ?>assets/js/jquery-ui.min.js"></script> 
<input class="form-control ui-autocomplete-input" name="src" id="src" type="text" value="<?if (!empty($rule_info['src'])) {echo $rule_info['src'];} else{ echo 'any';}?>" pattern="[a-zA-Z0-9_.:]+" placeholder="Source Address" <?if (!empty($rule_info['src'])) {} else{ echo 'disabled';}?> autocomplete="off"> 
$(function() { 
    $("#dst").autocomplete({ //the recipient text field with id #username 
     source: function(request, response) { 
      $.ajax({ 
       url: "<?php echo base_url();?>rule/search_alias_for_rule", 
       dataType: "json", 
       data: request, 
       error: function(xhr, status, error) { 
        var err = eval("(" + xhr.responseText + ")"); 
        alert(err.Message); 
       }, 
       success: function(data){ 
        if(data.response == 'true') { 
         response(data.message); 
        } 
       } 
      }); 
     } 
    }); 
}); 

然後控制器函數的是。

public function search_alias_for_rule(){ 

    $username = trim($this->input->get('term', TRUE)); //get term parameter sent via text field. Not sure how secure get() is 

    $this->db->select('name'); 
    $this->db->from('alias'); 
    $this->db->like('name', $username); 
    $this->db->limit('5'); 
    $query = $this->db->get(); 

    if ($query->num_rows() > 0) 
    { 
     $data['response'] = 'true'; //If username exists set true 
     $data['message'] = array(); 

     foreach ($query->result() as $row) 
     { 
      $data['message'][] = array(
       'label' => $row->name, 
       'value' => $row->name 
      ); 
     } 
    } 
    else 
    { 
     $data['response'] = 'false'; //Set false if user not valid 
    } 

    echo json_encode($data); 
} 

我該怎麼做?請幫幫我。

回答

0

用一套方法嘗試在$就功能類型和數據:

$(function() { 
    $("#dst").autocomplete({ //the recipient text field with id #username 
     source: function(request, response) { 
      $.ajax({ 
       type: 'GET', 
       data: { 
        term: request.term 
       }, 
       url: "<?php echo base_url();?>rule/search_alias_for_rule", 
       dataType: "json", 
       error: function(xhr, status, error) { 
        var err = eval("(" + xhr.responseText + ")"); 
        alert(err.Message); 
       }, 
       success: function(data){ 
        if(data.response == 'true') { 
         response(data.message); 
        } 
       } 
      }); 
     } 
    }); 
}); 
+0

不工作的人 –

0

默認情況下,like操作是一樣的東西:

$this->db->like('title', 'match'); 
// Produces: WHERE `title` LIKE '%match%' ESCAPE '!' 

對你上述條件的工作。

試試這個片斷:

$this->db->select('name'); 
$this->db->from('alias'); 
$this->db->like('name', $username,'after'); // Produces: WHERE `name` LIKE 'username%' ESCAPE '!' 
$this->db->limit('5'); 
$query = $this->db->get();  

詳細點擊documentation

+0

感謝您的幫助。 –

+0

歡迎。請接受答案,如果它發現未來推薦的價值。 – Shihas

0

現在它已完成改變成功函數在Ajax。

success: function(data){ 
    if(data.response == 'true') { 
     response(data.message); 
    } 
    else{ 
     response(data.message).remove(); 
    } 
}