ホームページ バックエンド開発 PHPチュートリアル PHP+jQueryで自動補完機能のソースコードを実装_PHPチュートリアル

PHP+jQueryで自動補完機能のソースコードを実装_PHPチュートリアル

Jul 21, 2016 pm 03:10 PM
落ちる 成し遂げる ソースコード 単純 自動

以前にドロップダウンのオートコンプリート関数を手動で作成しましたが、これは簡単に作成でき、マウス選択機能のみを実装しており、キーボード選択はサポートしていません。この機能はプロジェクト内の多くの場所で使用されるため、慎重に行う必要があります。 select2 プラグインの機能が現在のニーズを満たすことができることがわかりました。

jquery プラグイン select2 を使用するときに、json データを渡す場合でも、jsonp を介してデータを取得する場合でも、正しく返されるという疑問に遭遇しました。ただし、ドロップダウン リスト内の項目は選択できず、マウスやキーボードによる選択も無効になります。

その後、select2 プラグインが選択の基準としてデータ内の ID フィールドを使用していることがわかりました。したがって、json であっても jsonp であっても、ajax によって返されるデータには id フィールドが必要です。このような ID が実際のデータベースに存在しない場合は、手動で ID を作成することもできますが、ID の一意性を確保する必要があります。

テンプレート ファイル try_diy.tpl のソース コードはここにリストされています:
列入力ボックスはプラグインが機能する場所ですが、ページが送信されるときに返される値は ID です。ユーザーが選択したセクションをユーザーに提示します。コントローラーが ID 値を受け取り、それが空ではない場合、そのフォーラムに対応する ID 値に基づいて、対応するフォーラム名を照会します。同時にページ上にIDも表示されます。 select2プラグインは構築した

の内側span要素に名前を入れるので、span要素に隠しフィールドのname値を書き込みます。

コードをコピーします コードは次のとおりです:







<スクリプト src=" ./static/js/select2-3.3.2/select2.js">





gt ;

セクション ID: <{$frmid}>




<script> <br>$(document).ready(function() { <br> $(' #colum').select2({ <br>minimumInputLength: 0, <br>placeholder: 'セクションを選択', <br>ajax: { <br>url: "http://pm.feiliu.com/?c=try&a=ajax_diy", <SPAN style="BACKGROUND-COLOR: #f5f5f5; COLOR: #008000">//</SPAN><SPAN style="BACKGROUND-COLOR: #f5f5f5; COLOR: #008000"> URL を入力してくださいjsonp リクエストのアドレス </SPAN> <br> /jsonpCallback: "testback", <br> //jsonpCallback は、カスタムの jsonp コールバック関数名です。デフォルトはランダムな関数名です。 jQueryによって自動生成される「?」を記述することもできます。 jQuery はデータを自動的に処理します <br>quietMillis: 100, <br>data: function(name, page) { <br>return { <br>types: ["exercise"], <br>limit: -1, <br>q: name <br>}; <br>results: function(data, page) { <br>return { results: data.items } <br>} <br>}, <br>formatResult: function(exercise) { <br>return "<div class='select2-user-result'>" + 運動.name + "</div>"; <br>} , <br>formatSelection: function(運動) { <br>運動.name を返す <br>} $('#colum').change(function( ){ <br>frm.submit(); <br>}); <br>var name = $("#columname").val(); <br>if(name){ <br>$("#s2id_colum").find("span") .text(name); <br>} <br>}); <br></script>


コードをコピーします。
コードは次のとおりです:

クラス pmc_try
{
パブリック関数 diy(){
if($_POST['colum'])
{
$fid = $_POST['colum'];
$fname = mod_forum::get_forum_name_by_fid($fid);//根据id取name
pm_tpl::assign('frmid',$fid);
pm_tpl::assign('frmname',$fname);
pm_tpl::display("try_diy");
}else
{
pm_tpl::display("try_diy");
}
}
パブリック関数 ajax_diy(){
$fid = $_GET['q'];
$callback = $_GET["callback"]; //関数数名はコールバック
$forums = mod_forum::get_ajx_forum_by_tpid($fid);
$total = count($forums);
$result = array(
'total'=>$total,
'items'=>$forums
);
$output = json_encode($result);
echo $callback.'('.$output.')';//构造jonsp
exit();
}
}
?>

モデルメソッド:
复制代码代码如下:

public static function get_forum_name_by_fid($fid)
{
$sql = "SELECT name FROM sq_forums WHERE fid='$ fid' ORDER BY thread_counter DESC ";
$data = pm_db11::result_first($sql);
$data を返す;
}
パブリック静的関数 get_ajx_forum_by_tpid($tpid, $fid)
{
//产品ID:tpid,バージョンID:fid
$data = array();
if($tpid && $fid){///构造一 id フィールド、また通過可能です
$sql = "SELECT fid AS id,fid,name FROM sq_forums WHERE tpid='$tpid' AND name LIKE N'%$fid%' ORDER BY thread_counter DESC";
$query = pm_db11::query($sql);
$data = pm_db11::fetch_all($query);
}
$data を返します。
}

さらに、突出提案効果として使用すると、表示名に含まれる承認文字を強調表示できます。これは、再選択 2 の formatResult 関数で処理することも、php で処理することもできます。
補足参考http://www.cnblogs.com/doinning/archive/2012/04/19/json-jsonp-jquery.html

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/327146.html技術記事前のハンドワークは、マウスで選択された機能のみを実行し、必要な機能をサポートするために必要な、完全な機能を下書きしました。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ハードドライブのシリアル番号を照会する最も簡単な方法 ハードドライブのシリアル番号を照会する最も簡単な方法 Feb 26, 2024 pm 02:24 PM

ハードディスクのシリアル番号はハードディスクの重要な識別子であり、通常、ハードディスクを一意に識別し、ハードウェアを識別するために使用されます。場合によっては、オペレーティング システムのインストール時、正しいデバイス ドライバーの検索時、ハード ドライブの修復の実行時など、ハード ドライブのシリアル番号を照会する必要があることがあります。この記事では、ハードドライブのシリアル番号を確認する簡単な方法をいくつか紹介します。方法 1: Windows コマンド プロンプトを使用してコマンド プロンプトを開きます。 Windows システムでは、Win+R キーを押し、「cmd」と入力し、Enter キーを押してコマンドを開きます。

Huawei 携帯電話にデュアル WeChat ログインを実装するにはどうすればよいですか? Huawei 携帯電話にデュアル WeChat ログインを実装するにはどうすればよいですか? Mar 24, 2024 am 11:27 AM

Huawei 携帯電話にデュアル WeChat ログインを実装するにはどうすればよいですか?ソーシャルメディアの台頭により、WeChatは人々の日常生活に欠かせないコミュニケーションツールの1つになりました。ただし、多くの人は、同じ携帯電話で同時に複数の WeChat アカウントにログインするという問題に遭遇する可能性があります。 Huawei 社の携帯電話ユーザーにとって、WeChat の二重ログインを実現することは難しくありませんが、この記事では Huawei 社の携帯電話で WeChat の二重ログインを実現する方法を紹介します。まず第一に、ファーウェイの携帯電話に付属するEMUIシステムは、デュアルアプリケーションを開くという非常に便利な機能を提供します。アプリケーションのデュアルオープン機能により、ユーザーは同時に

PHP プログラミング ガイド: フィボナッチ数列を実装する方法 PHP プログラミング ガイド: フィボナッチ数列を実装する方法 Mar 20, 2024 pm 04:54 PM

プログラミング言語 PHP は、さまざまなプログラミング ロジックやアルゴリズムをサポートできる、Web 開発用の強力なツールです。その中でも、フィボナッチ数列の実装は、一般的で古典的なプログラミングの問題です。この記事では、PHP プログラミング言語を使用してフィボナッチ数列を実装する方法を、具体的なコード例を添付して紹介します。フィボナッチ数列は、次のように定義される数学的数列です。数列の最初と 2 番目の要素は 1 で、3 番目の要素以降、各要素の値は前の 2 つの要素の合計に等しくなります。シーケンスの最初のいくつかの要素

Huawei携帯電話にWeChatクローン機能を実装する方法 Huawei携帯電話にWeChatクローン機能を実装する方法 Mar 24, 2024 pm 06:03 PM

Huawei 携帯電話に WeChat クローン機能を実装する方法 ソーシャル ソフトウェアの人気と人々のプライバシーとセキュリティの重視に伴い、WeChat クローン機能は徐々に人々の注目を集めるようになりました。 WeChat クローン機能を使用すると、ユーザーは同じ携帯電話で複数の WeChat アカウントに同時にログインできるため、管理と使用が容易になります。 Huawei携帯電話にWeChatクローン機能を実装するのは難しくなく、次の手順に従うだけです。ステップ 1: 携帯電話システムのバージョンと WeChat のバージョンが要件を満たしていることを確認する まず、Huawei 携帯電話システムのバージョンと WeChat アプリが最新バージョンに更新されていることを確認します。

Linux でのドライブの自動マウント Linux でのドライブの自動マウント Mar 20, 2024 am 11:30 AM

Linux オペレーティング システムを使用していて、システムが起動時にドライブを自動的にマウントするようにしたい場合は、デバイスの一意の識別子 (UID) とマウント ポイントのパスを fstab 構成ファイルに追加することでこれを行うことができます。 fstab は、/etc ディレクトリにあるファイル システム テーブル ファイルで、システムの起動時にマウントする必要があるファイル システムに関する情報が含まれています。 fstab ファイルを編集すると、システムを起動するたびに必要なドライブが正しくロードされるようになり、システムの安定した動作が保証されます。ドライバーの自動マウントはさまざまな場面で便利に使えます。たとえば、システムを外部ストレージ デバイスにバックアップする予定です。自動化を実現するには、起動時であってもデバイスがシステムに接続されたままであることを確認してください。同様に、多くのアプリケーションは直接

Golang がゲーム開発の可能性を可能にする方法をマスターする Golang がゲーム開発の可能性を可能にする方法をマスターする Mar 16, 2024 pm 12:57 PM

今日のソフトウェア開発分野では、効率的で簡潔かつ同時実行性の高いプログラミング言語として、Golang (Go 言語) が開発者にますます好まれています。豊富な標準ライブラリと効率的な同時実行機能により、ゲーム開発の分野で注目を集めています。この記事では、ゲーム開発に Golang を使用する方法を検討し、具体的なコード例を通じてその強力な可能性を示します。 1. ゲーム開発における Golang の利点 Golang は静的型付け言語として、大規模なゲーム システムの構築に使用されます。

PHP ゲーム要件実装ガイド PHP ゲーム要件実装ガイド Mar 11, 2024 am 08:45 AM

PHP ゲーム要件実装ガイド インターネットの普及と発展に伴い、Web ゲーム市場の人気はますます高まっています。多くの開発者は、PHP 言語を使用して独自の Web ゲームを開発することを望んでおり、ゲーム要件の実装は重要なステップです。この記事では、PHP 言語を使用して一般的なゲーム要件を実装する方法を紹介し、具体的なコード例を示します。 1. ゲームキャラクターの作成 Web ゲームにおいて、ゲームキャラクターは非常に重要な要素です。ゲームキャラクターの名前、レベル、経験値などの属性を定義し、これらを操作するメソッドを提供する必要があります。

Linux のヒント: vim に貼り付けるときに自動インデントをキャンセルする Linux のヒント: vim に貼り付けるときに自動インデントをキャンセルする Mar 07, 2024 am 08:30 AM

はじめに: vim は強力なテキスト編集ツールであり、Linux で非常に人気があります。最近、別のサーバーで vim を使用しているときに、奇妙な問題が発生しました。ローカルで作成したスクリプトをコピーしてサーバー上の空のファイルに貼り付けると、自動インデントが発生しました。簡単な例を使用すると、ローカルで作成したスクリプトは次のとおりです: aaabbbcccddd。上記の内容をコピーしてサーバーの空のファイルに貼り付けると、取得されるものは次のとおりです: aabbbcccddd。明らかに、これは vim が自動的に行うことです。インデントをフォーマットします。ただし、このオートマチックは少し知性がありません。解決策をここに記録します。解決策: ホーム ディレクトリに .vimrc 構成ファイルを設定します。

See all articles