【问题标题】:Change returned value autocomplete PHP更改返回值自动完成 PHP
【发布时间】:2016-05-30 08:57:20
【问题描述】:

我对 javascript、php 等完全陌生......我真的需要一些帮助来完成我的实习申请。

这是我的问题。

我正在使用数据库上的自动完成功能来查找特定公司。

自动补全返回带有公司名称的标签和值,但我需要它的 ID,因为我的应用程序的其余部分使用 ID。

这是一个例子:

这是我在 POST 中得到的:

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

所以我仍然需要公司的名称,但我想要的不是“example”,而是“example”的 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 );
        });
      }
    });
  });

非常感谢您的帮助!

【问题讨论】:

    标签: javascript php jquery autocomplete


    【解决方案1】:

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

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

    如果你需要更多数据,你可以做一个数组数组,比如

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

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

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

    【讨论】:

    • 您好,谢谢您的回复。我已经尝试过了,但是当我这样做时,我的输入没有显示任何内容。不知道为什么!
    • 这意味着您的 json 没有返回任何内容或格式不正确。请记住,在您的响应(数据)中,数据需要是一个仅由字符串、字符串或函数组成的数组,因此您可能希望在 javascript 回调中进一步处理您的响应,但您并没有这么问。出于某种原因,您所要求的只是包括 ID。此外,调试您的代码并确保您的帖子返回一些内容。如果数据为空,则不会提供任何建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-24
    • 1970-01-01
    • 2014-07-22
    • 1970-01-01
    • 2013-07-31
    • 2012-06-13
    • 2018-06-23
    相关资源
    最近更新 更多