1
我使用jQuery Tokeninput自動完成插件單詞的第一個字母,我使用服務器端腳本來獲取所有結果。當我使用Tokeninput-Demo中的php腳本嘗試它時,它工作正常。但是,當我使用我的PHP腳本作爲源時,它不會識別單詞的第一個字母。例如,如果我正在搜索「Marc Fisher」,並且輸入「Marc」,但它找不到任何內容,但是當我輸入「arc」時,它就會起作用。姓氏也是如此。jQuery的Tokeninput不會<a href="http://loopj.com/jquery-tokeninput/" rel="nofollow">http://loopj.com/jquery-tokeninput/</a></p> <p>我已經建立了它變成我的應用程序識別
這裏是我的PHP腳本:
$search = $_GET['q'];
$friends = array(
0 => array('name' => 'Marc Fisher', 'id' => '111'),
1 => array('name' => 'Thomas Mann', 'id' => '222'),
2 => array('name' => 'Jon Applebaum', 'id' => '333')
);
$searched_friends = array();
foreach ($friends as $friend) {
$check = strpos($friend['name'], $search);
if ($check !== false) {
array_push($searched_friends, $friend);
}
}
echo(json_encode($searched_friends));
奇怪的是,如果我直接在網址爲GET鍵入「三月」,那麼它的工作原理和輸出:
[{"name":"Marc Fisher"}]
我到處搜索並嘗試了所有我能想到的 - 但無濟於事。你知道什麼是錯的嗎?
我得到它的工作,但我不知道爲什麼。 基本上,我用preg_match交換了strpos。現在它工作 –
正則表達式錨定?唯一想到爲什麼這種改變可能會有所作爲的是,如果查詢參數填充空白,或者如果有案例問題,並且'preg_match'不區分大小寫。順便說一句,如果你只是做線性整數索引,你不需要在你的數組中手動指定它們。 – JMM
我也有過這個第一個字母的問題,當我在Rails中使用令牌輸入時就發生了。仍然希望從某個地方得到明確的解釋。 – dmonopoly