我有一个表格
<form action="_orders.php" method="get" autocomplete="off" name="cerca_db">
<tr>
<td class="main" width="170">Ricerca Cliente</td>
<td><input type="hidden" name="action" value="check_sped_data" /></td>
<td class="main"><p class="ciao" id="auto"><input id="searchField" name="searchField" type="text" onKeyPress="return disableEnterKey(event)"></p></td>
<td width="25"></td>
<td class="main"><input type="submit" value="Cerca"></td>
</tr>
</form>
这用于在 mysql 数据库表中进行搜索。单击按钮后,它会根据刚刚找到的数据库记录自动完成另一个表单的所有字段。
现在我的问题是自动完成部分,因为区分大小写。我已经设法以小写形式提取数据,但是在发送到 java 函数以匹配 db 记录之前,我无法将输入 searchField转换为小写。
我实际上发现 javascipt 函数具有自动完成功能。我只更改了 html 和 php 部分以满足我的需要,我没有触及 java 本身的任何内容,因为我完全是一个菜鸟。
所以现在表单像这样将输入发送到javascript
$(function(){
setAutoComplete("searchField", "results", "autocomplete.php?part=");
});
automcomplete.php 需要根据输入从数据库中提取数据并放入数组中以显示在输入下:
$result = mysql_query("SELECT a.customers_firstname, a.customers_lastname, a.customers_id, b.entry_company FROM customers a left join address_book b on a.customers_id = b.customers_id GROUP BY b.entry_cf");
while ($row = mysql_fetch_assoc($result))
{
$ricerca = array(strtolower($row['customers_firstname']) => strtolower($row['customers_lastname']));
foreach ($ricerca as $key=>$data)
{
$edata[]=$data . ' ' . $key;
$edata[].=$key .' ' . $data;
}
$edata[].=(strtolower($row['entry_company']));
}
现在我们已经准备好名称和公司的数组,所有小写字母都可以匹配字段中输入的内容。如果输入为小写,一切正常,但如果输入为大写,则根本不匹配任何内容。
你们对此有任何解决方案或任何想法我可以解决区分大小写的问题吗?
编辑:这是数据从 db 推送到 java 脚本的方式:
if(isset($_GET['part']) and $_GET['part'] != '')
{
$results = array();
$count = 0;
foreach($extracted_data as $edata)
{
if( strpos($edata, $_GET['part']) === 0 )
{
$results[] = $edata;
$count++;
if ($count == 10) break;
}
}
echo json_encode($results);
}