|
AutoCompleteを紹介します。
自動補完機能は、一般的なWebサイトでも実現されていますが、CurlでもAutocompleteTextFieldクラスを利用することで、簡単に実現することができます。

使い方
サーバサイドに簡単なスクリプト等を用意する必要があります。詳細は、 サンプルに記載しております。ここでは、Curl側の使い方を紹介します。
{AutocompleteTextField {RandomCompletionProvider} } |
AutocompleteTextFieldは、TextFieldを継承して作成されたクラスです。
引数:provider:AutocompleteProviderには、オンデマンドでデータを提供するためのクラスを指定します。例えば以下のようにAutocompleteProviderを継承して、refreshメソッドをオーバーライドします。
|
{define-class public open RandomCompletionProvider {inherits AutocompleteProvider}
field public rng:LinearRandom field public digits:int
{constructor public {default max-results:int = 10, digits:int = 6 }
{construct-super max-results} set self.digits = digits set self.rng = {LinearRandom seed = ({DateTime}.info.fraction * 10000) asa int} }
{method public open {refresh acf:AutocompleteMixin}:void def tf = acf.text-field def s = tf.value let items:StringArray = {StringArray} def result-count = {max 10, self.max-results} {if s.size < self.digits then def n = self.digits - s.size let a:int = 1 let b:int = {pow 10.0, n} asa int let f:String = {format "%%s%%0%dd", n} {for i = 0 below result-count do {items.append {format f, s, {self.rng.next-in-range a, b - 1}}} } } {acf.populate-from-strings items} } }
|
この例では、「http://developers.curlap.com/curl/curl-ext/hp/php/words-containing.php?value=%s&max=%s」にリクエストを送り、結果をドロップダウンで表示します。
サンプル
以下のリンクにて、サンプルプを確認することができます。
http://developers.curlap.com/curl/curl-ext/hp/curlext-overview_autocomplete_textfields.curl
このサンプルでは、サーバサイドには、以下のようなphpソースと、TXTファイルを配置しています。
------------【phpソース】------------------------------------------------------ $req_value = $_GET['value']; $vals = file("words.txt"); $count = count($vals); $output = ""; for ($i = 0; $i < $count; $i++) { $pos = stripos($vals[$i], $req_value); if ($pos === FALSE) { // Skip it. } else { if ($pos >= 0) { $output .= "$vals[$i]"; } } } echo "$output"; ?> ------------【TXTファイル】------------------------------------------------------ http://developers.curlap.com/curl/curl-ext/hp/php/words.txt
また、Google Suggestion APIとの連携はこちらを参照ください。
|