自动填充文本框不在codeigniter中工作

时间:2018-04-03 06:44:23

标签: php jquery json codeigniter

控制器: Welcome.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Welcome extends CI_Controller {
    function __construct() 
    {
        parent :: __construct();
        $this->load->helper(array('form', 'url', 'captcha', 'email'));
        $this->load->model('Main_tutorial');
    }
    public function index()
    {
        $this->load->view('index');
    }
    public function get_tutorial(){
        $keyword=$this->input->post('keyword');
        $data=$this->Main_tutorial->getrow($keyword);        
        echo json_encode($data);
    }
}

模型。的 Main_tutorial.php

<?php  
class Main_tutorial extends CI_Model  
{  
    function __construct()  
    {   
        parent::__construct();  
    }  
    public function getrow($keyword) {        
        $this->db->order_by('id', 'DESC');
        $this->db->like("tutorial_name", $keyword);
        return $this->db->get('tutorial')->result_array();
    }
}

查看: index.php

<input class="search-bg__text" type="text" name="tutorial_name" id="tutorial_name" autocomplete="off" placeholder="search....">
<ul class="dropdown-menu tutos" role="menu" aria-labelledby="dropdownMenu"  id="Dropdowntuto"></ul>

custom.js

$(document).ready(function () {
    $("#tutorial_name").keyup(function () {
        $.ajax({
            type: "POST",
            url: "http://localhost/codeigniter/welcome/get_tutorial",
            data: { keyword: $("#tutorial_name").val()},
            dataType: "json",
            success: function (data) {
                if (data.length > 0) {
                    $('#Dropdowntuto').empty();
                    $('#tutorial_name').attr("data-toggle", "dropdown");
                    $('#Dropdowntuto').dropdown('toggle');
                }
                else if (data.length == 0) {
                    $('#tutorial_name').attr("data-toggle", "");
                }
                $.each(data, function (key,value) {
                    if (data.length >= 0)
                        $('#Dropdowntuto').append('<li role="displayTuto" ><a role="menuitem dropdowntutoli" class="dropdownlivalue">' + value['name'] + '</a></li>');
                });
            }
        });
    });
    $('ul.tutos').on('click', 'li a', function () {
        $('#tutorial_name').val($(this).text());
    });
});

在这段代码中,我想使用json,codeigniter创建一个自动完成建议框。现在,当我运行路径时,我将其放入我的custom.js文件中,它会在json中显示所有数据。但是当我在文本字段内写字时,它没有显示任何我不知道背后的问题是什么。那么,我该如何解决这个问题呢?请帮帮我。

谢谢

1 个答案:

答案 0 :(得分:0)

custom.js文件中,value['name']必须与value.name

相似