自动完成显示数据库中的所有数据(不根据输入字段中的单词类型)

时间:2016-05-26 04:42:46

标签: javascript php html codeigniter

错误

用于视图中输入字段的下拉列表显示数据库中的所有数据。但不能归因于用户输入的单词。

例如:

如果数据库product由不同的product_name组成,例如Pepsi,Slice和Coke。

问题 =当用户在输入字段中输入任何值时,它会从数据库中获取所有数据,例如Pepsi,Slice和Coke。

解决方案通缉 =输入字段必须根据用户输入的字词显示,如果输入字母k则必须显示可乐。由于product_name可口可乐只包含字母k。

查看

<script type="text/javascript">
        $(function(){
          $("#get_names_product").autocomplete({
            source: "<?php echo site_url('inventory/get_product_names'); ?>" // path to the get_product_name method
          });
        });
    </script>

<form name="frmOne" id="newBatch" class="form-horizontal" action="" method="post">

    <div class="form-group">
        <label for="customerName" style="color:#3fa9f5;" class="col-sm-3 control-label">Product Name</label>
             <div class="col-sm-8">
                    <input type="text" value="<?php echo isset($post)?$post->product_name:''; ?>" class="form-control" name="systemProduct[product_name]" id="get_names_product" placeholder="Enter Product Name">
             </div>
     </div>
</form>

控制器

function get_product_names()
{
    $this->load->model('productModel', 'product');
    if (isset($_GET['term'])) {
        $q = strtolower($_GET['term']);
        $this->product->get_name_product($q);
    }
}

模型

function get_name_product($q)
{
    $q = $this->db->query("SELECT distinct `product_name` FROM `product` where `deleteProduct` = '0' ");
    if ($q->num_rows() > 0) {
        foreach ($q->result_array() as $row) {
            $row_set[] = htmlentities(stripslashes($row['product_name'])); //build an array
        }
        echo json_encode($row_set); //format the array into json data
    }
}

1 个答案:

答案 0 :(得分:0)

在选择查询中使用LIKE关键字。

select product_name from product where deleteProduct = '0' AND productName LIKE "%'.$q.'%"