enter image description here

Я пытаюсь создать автозаполнение текстового поля с помощью jquery. Но что-то идет не так, когда я проверяю его в отладчике, он показывает каждое значение, но не отображается в раскрывающемся текстовом поле на странице просмотра. Я новичок, вся помощь будет оценена.

вот мой код просмотра.

<link rel="stylesheet" type="text/css" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script type="text/javascript" src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>

<script type="text/javascript">
    $(function(){
        $("#location").autocomplete({
            source: 'set_location'
        });     
    });
</script>
<form action= "#">
    <table>
        <tr>
            <td><label for='location'>Location</label></td>
            <td><input id="location" type="text" size="50" placeholder="Enter a location" name= "location"> </td>
        </tr>           
    </table>
</form>

вот мой код контроллера

if(isset($_GET['term'])){
    $location = strtolower($_GET['term']);      
    $query = $this->venues_model->set_location($location);          
    echo $query;
}

вот код моей модели

$this->db->select('*');
$this->db->like('location', $location);
$query = $this->db->get('venue_details');

if(count($query->result_array()) > 0){ 
    foreach ($query->result_array() as $row){
        $row_set[] = htmlentities(stripslashes($row['location']));
    }
    echo json_encode($row_set);
}
0
Rahul Bhargava 27 Окт 2015 в 10:12

3 ответа

Лучший ответ

Попробуй это,

if(isset($_GET['term'])){
$location = strtolower($_GET['term']);      
echo $this->venues_model->set_location($location);          
}

В модели

function set_location() {
    $row_set = array();
    $this->db->select('*');
    $this->db->like('location', $location);
    $query = $this->db->get('venue_details');

    if (count($query->result_array()) > 0) {
        foreach ($query->result_array() as $row) {
            $row_set[] = htmlentities(stripslashes($row['location']));
        }

    }

    return json_encode($row_set);
}

Также это,

source: '<?= base_url("controller/set_location") ?>'
1
Niranjan N Raju 27 Окт 2015 в 07:32

Просто добавьте ui-widget в свой div. Обязательно укажите jquery ui

0
akinlex 21 Май 2018 в 11:06

Вы должны return из файла модели и echo из вашего контроллера

Модель

$this->db->select('*');
$this->db->like('location', $location);
$query = $this->db->get('venue_details');

if(count($query->result_array()) > 0){ 
    foreach ($query->result_array() as $row){
        $row_set[] = htmlentities(stripslashes($row['location']));
    }
    return json_encode($row_set);// return from model
}

Контроллер

if(isset($_GET['term'])){
    $location = strtolower($_GET['term']);      
   echo  $query = $this->venues_model->set_location($location);          
}

И измени свой путь к

source: '<?php echo base_url();?>index.php/controller/function'
0
Saty 27 Окт 2015 в 07:26