基于城市和地区的自动完成搜索

时间:2017-01-29 03:29:12

标签: php jquery mysql autocomplete

您好我一直在尝试根据所选城市名称在数据库中创建公司或子类别的自动完整搜索,但它似乎对我不起作用。谁能帮我?下面是我的代码:

include( "dbconnect.php" );
$q = strtolower( $_GET['q'] );
$city = intval( $_GET['city_val'] );
if ( $city != "-1" )
{
    if ( !$q )
    {
    }
    else
    {
        $query = "SELECT DISTINCT concat(listing.company_name,' (',locality.locality,')') as name,listing.id as id,listing.type as type FROM listing,locality where listing.locality=locality.id AND listing.city='{$city}' AND LCASE(company_name) like '%".{$q}."%' UNION select DISTINCT sub_cat_name as name,subcategory.id as id,subcategory.type as type FROM subcategory where LCASE(sub_cat_name) like '%".{$q}."%' order by name";
    }
}
else
{
    if ( !$q )
    {
    }
    else

        $query = "SELECT DISTINCT concat(listing.company_name,'<br>(',locality.locality,' ',city.city,' ',state.statename,')') as name,listing.id as id,listing.type as type FROM listing,locality,city,state where listing.locality=locality.id AND listing.city=city.id AND listing.state=state.id AND LCASE(company_name) LIKE '%".{$q}."%' UNION select DISTINCT sub_cat_name as name,subcategory.id as id,subcategory.type as type FROM subcategory where LCASE(sub_cat_name) LIKE '%".{$q}."%' order by name";
   }
}
$results = mysql_query( $query );

while ( $result = mysql_fetch_array( $results ) )
{

    $array[] = array('name'=>$result['name'], 'id'=>$result['id'], 'type'=> $result['type']) ;
}   
echo json_encode($array);

您还可以在下面看到我的jquery代码:

<script>
  $(function() {
    $( "#companies" ).autocomplete({
      source: 'companies.php'
    });
  });
  </script>

1 个答案:

答案 0 :(得分:0)

自动填充方法将“term”作为默认密钥传递。因此,如果您想获得结果,您必须这样做:

$q = strtolower($_GET['term'] );

如果您想自定义它,请使用ajax。

看到这个:

Can the default "Term" name passed in the "jquery UI autocomplete" feature be changed?