更改返回值自动完成PHP

时间:2016-05-30 08:57:20

标签: javascript php jquery autocomplete

我是javascript,php等全新的...我真的需要一些帮助来完成我的培训申请。

这是我的问题。

我在数据库上使用自动填充功能来查找特定公司。

Autocompletion返回Label和Value以及公司名称,但我需要其ID,因为我的应用程序的其余部分使用ID。

以下是一个例子:

这是我在POST中得到的:

array (size=23)
  'company' => string 'example' (length=10)

所以我仍然需要公司的名称而不是“示例”我想要“示例”的ID。

这是我的search.php:

$dbHost = 'localhost';
$dbUsername = 'root';
$dbPassword = '';
$dbName = 'bsup';

if(!isset($company)) $company = '';
if(!isset($_POST['company'])) $_POST['company'] = '';

$db = new mysqli($dbHost,$dbUsername,$dbPassword,$dbName);


$searchTerm = $_GET['term'];


$query = $db->query("SELECT * FROM tcompany where name like '%".$searchTerm."%' ORDER BY name ASC");
while ($row = $query->fetch_assoc()) {

        $data[] = $row['name'];
}


//return json data
echo json_encode($data);

我的HTML:

$(function() {
    var cache = {};
    $.ajaxSetup( { type: "post" } );
    $( "#company" ).autocomplete({
      minLength: 2,
      select: function( event, ui ) {

        $(event.target).val(ui.item.value);
        $("#myform").submit();
      },
      source: function( request, response ) {


        $.getJSON( "search.php", request, function( data, status, xhr ) {

          response( data );
        });
      }
    });
  });

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:1)

更新您的json以包含您需要的所有数据。例如,返回一个如下数组:

$data[$row['ID']] = $row['name']

如果您需要更多数据,可以使用

等数组
$data[$row['ID']] = array($row['name'], $row['whatever'])

如果您想在自动填充中建议ID而不是名称,请使用:

$data[] = $row['ID']