1

http://loopj.com/jquery-tokeninput/の jQuery Tokeninput オートコンプリート プラグインを使用しています。

アプリケーションに組み込み、サーバー側スクリプトを使用してすべての結果を取得しています。Tokeninput-Demo の php-script で試してみると、問題なく動作します。しかし、php スクリプトをソースとして使用すると、単語の最初の文字が認識されません。たとえば、「Marc Fisher」を検索して「Marc」と入力しても何も見つかりませんが、「arc」と入力すると機能します。姓についても同様です。

これが私の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 の URL に直接「Mar」と入力すると、次のように機能して出力されます。

[{"name":"Marc Fisher"}]

私はどこでも検索し、考えられるすべてを試しましたが、役に立ちませんでした。何が悪いかわかりますか?

4

1 に答える 1

0

動作するようになりましたが、理由がわかりません。基本的に、strpos を preg_match で切り替えました。今では動作します。

于 2012-05-21T10:26:31.293 に答える