2011-08-02 6 views
0

を選択したときに、私はこのPHPを持っている:3列のLIKE。ショーのログイン、FIRSTNAME、および自動補完リストの姓だけを選択し、ログインユーザーが

$sql = ("SELECT login, firstname, lastname FROM $temp WHERE login LIKE '%$q%'"); 
$rsd = mysql_query($sql); 
while($rs = mysql_fetch_array($rsd)) { 
    $login = $rs['login']; 
    $fname = $rs['firstname']; 
    $lname = $rs['lastname']; 
     echo "$login "; 
     echo "$fname "; 
     echo "$lname \n"; 
} 

私はすでに私は3でLIKEを使用することができますどのように思っていたなど、私の変数を逃れてきましたユーザーがオートコンプリートリストの3つの値すべてをどのように表示するかを選択すると、テキスト領域のログインのみが表示されます。ところでjqueryのオートコンプリートのプラグインを使用してイム:三つのフィールドのいずれかが一致するように

... where `login` like '...' or `firstname` like '...' or `lastname` like '...' 

:あなたのSQLで

<script type="text/javascript"> 
$().ready(function() { 
    $("textarea#user").autocomplete("autocomplete.php", { 
     width: 260, 
     matchContains: true, 
     selectFirst: false 
    }); 
}); 
+0

あなたはどちらのプラグインを使用していますか? 1つのファイル内の複数のフィールドを照会することができるプラグインが機能的に許可されている場合、そのプラグインは機能します。 – theking963

+0

このプラグインを使用している私:http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/ – re1man

答えて

0

あなたはおそらくのような何かをしたいです。

jquery.autocompleteプラグインにはいくつかのバリエーションがあります。私はそれらの1つを使用し、以下のコードのようなものは私のためにうまく動作します。

$("textarea#user").autocomplete("autocomplete.php", { 
    width: 260, 
    matchContains: true, 
    selectFirst: false, 
    formatItem: function(row, pos, num, query) { 
     // alert(row.join(',')); // See this alert, I don't remember in which order substrings are packed into "row" 

     // Return html we want to be displayed in an item within the dropdown list. 

     return row[0] + '<br /><em>' + row[1] + '</em> ' + row[2]; 
    } 
}).result(function(event, data, formatted) { 
    // alert(data.join(',')) // See what's in the "data", there should be your "login", "firstname", "lastname" of the item selected by user 

    // Do what you want here with the event. 

    $("textarea#user").val(data[0]); 
}); 

私はコードをテストしていません。

あなたのケースでは.result(...)セクションは不要であるようですが、オートコンプリートは行の最初の部分文字列を入力に挿入します。私はあなたが "item"選択された "イベントを含む。

乾杯。

EDIT: matchContains:「単語」、 matchSubset:

ああ、私はあなたが自動補完のために、さらに2つのオプションが必要になる場合があります忘れてしまった偽のを、ためにあなたのクエリでLIKEを使用することはできません

0

自動完了。

あなたは、あなたが使用しているプラ​​グインが廃止されました

$sql = ("SELECT DISTINCT firstname FROM $temp WHERE login LIKE '%$q%' LIMIT 0,10");//You don't want to have 20 autocomplete fields 
$rsd = mysql_query($sql); 
while($rs = mysql_fetch_array($rsd, MYSQL_ASSOC)) { 
     echo "$rs['firstname']"; 

} 

を行い、あなたのPHPファイルで、この

$().ready(function() { 
    $("textarea#field1").autocomplete("autocompleteField1.php", { 
     width: 260, 
     matchContains: true, 
     selectFirst: false 
    }); 
}); 

$().ready(function() { 
    $("textarea#field2").autocomplete("autocompleteField2.php", { 
     width: 260, 
     matchContains: true, 
     selectFirst: false 
    }); 
}); 

ような何かをする必要があります。あなたがそれに多く取り組んでいない場合、私はより良いサポートを持って、かなりうまく動作する別のプラグインを使用することをお勧めします。

このpluginはいいです。

その他jQuery Plugins

関連する問題