私はフォームを持っています
<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 db テーブルを検索するために使用されます。ボタンをクリックすると、見つかったデータベース レコードに基づいて、別のフォームのすべてのフィールドがオートコンプリートされます。
今私の問題は、大文字と小文字が区別されるため、オートコンプリート部分にあります。私はすでに小文字でデータを抽出することができましたが、db レコードと一致するように Java 関数に送信する前に、入力 searchFieldを小文字に変換することはできません。
私は実際に javascipt 関数にオートコンプリート機能があることを発見しました。私は自分のニーズに合わせてhtmlとphpの部分を変更しただけで、Java自体には何も触れていません。
したがって、フォームは次のように入力をjavascriptに送信します
$(function(){
setAutoComplete("searchField", "results", "autocomplete.php?part=");
});
automcomplete.php は、入力に基づいて db からデータを抽出し、入力の下に表示する配列に配置する必要があります。
$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);
}