入力した最初の文字が 0 (ゼロ) のときにオートコンプリートが機能しない理由を知っている人はいますか? デバッグの目的で、行が見つかったかどうかだけを通知するように AC をセットアップしました。最初の文字として入力した文字は、0 を除いてそのように通知されているようです。起動して作業を開始します。minLength
最初の文字が 0 のときの属性のようです。これに2
遭遇したり聞いたりして、修正方法を知っている人はいますか? これが私のコードです:
//AutoComplete code in question
$(function() {
var itemcode_ac = {
source: "/webservices/whs_bincodeAC.php",
select: function(event, ui) {
$('#txtBin').val(ui.item.value);
getWhsInfo();
},
minLength: 1
}
$('#txtBin').autocomplete(itemcode_ac);
});
whs_bincodeAC.php:
<?php
if(isset($_GET["term"]) && !empty($_GET["term"])) {
include_once $_SERVER['DOCUMENT_ROOT'].'/path/to/dbConnect.php';
$term = mysql_real_escape_string(trim($_GET["term"]));
//wildcard appended here for parameterized query (MySqli)
$term .= "%";
$query = "SELECT DISTINCT BinCode, ItemCode, ItemName, WhsCode, DataAsOfDate FROM whse_tbl
WHERE BinCode LIKE '$term' or ItemCode LIKE '$term' ORDER BY BinCode LIMIT 0, 10";
$res = mysql_query($query);
//This is the debug code I described above
/*if($row = mysql_fetch_assoc($res))
echo json_encode(array(array('value' => "is row")));
else
echo json_encode(array(array('value' => "no row")));
return;*/
$matches = array();
while($row = mysql_fetch_assoc($res))
{
$matches[] = array('value' => $row["BinCode"], 'label' => $row["BinCode"].' - '.$row["ItemCode"],
'name' => $row["ItemName"], 'whscode' => $row["WhsCode"], 'asOfDate' => $row["DataAsOfDate"]);
}
echo json_encode($matches);
}
?>
注: 私の上司は、今のところ MySqli 拡張機能ではなく、MySql を使用するように指示しています。