オートコンプリートを使用していくつかのファイルを検索しようとしていますが、機能せず、理由がわかりません。
データベースの結果を処理する単純なオートコンプリートの例を作成します。
$items = array();
while(!$res->EOF){
$descPi = "PI: ".$res->fields["FIELD1"];
$descEmb = " - EMB: ".$res->fields["FIELD2"]."/".$res->fields["FIELD3"]."/".$res->fields['FIELDS4'];
$origem = " - ORI: ".$res->fields['FIELD5'];
$fornec = " - FOR: ".$res->fields['FIELD6'];
$items[$descPi.$descEmb.$origem.$fornec] = $res->fields["FIELD1"];
$res->MoveNext();
}
これは完璧に機能し、次のような配列を出力します(firebugによる):
Array
(
[PI: 3221554 - EMB: 30/6/2012 - ORI: TAIWAN - FOR: SIRUBA] => 3221554
)
[ { "id": "3221554", "label": "PI: 3221554 - EMB: 30/6/2012 - ORI: TAIWAN - FOR: SIRUBA", "value": "PI: 3221554 - EMB: 30/6/2012 - ORI: TAIWAN - FOR: SIRUBA" } ]
完全。
そして今、私はほとんど同じですが、ファイルを検索していますが、機能していません:
$items = array();
for($j=0;$j<count($files);$j++)
{
if($files[$j] != "." and $files[$j] != ".."){
$items[$files[$j]] = $files[$j];
}
}
そしてこれを(firebugによって)出力します:
Array
(
[Dock.jpg] => Dock.jpg
[Forest Flowers.jpg] => Forest Flowers.jpg
[Forest.jpg] => Forest.jpg
[Tree.jpg] => Tree.jpg
)
[ ] // return's empty
コードをデバッグしているstrpos
と、この検証が見つかりました。彼は、私の配列が戻ってきて、 :false
を作成するために入力していないと言っています。array_push
$result = array();
foreach ($items as $key=>$value) {
if (strpos(strtolower($key), $q) !== false) {
array_push($result, array("id"=>$value, "label"=>$key, "value" => strip_tags($key)));
}
if (count($result) > 11)
break;
}
したがって、2つの配列を比較すると、違いは見つかりませんでした。何が欠けていますか?
それだけです、質問は、私のゲストになります。