以前にドロップダウンのオートコンプリート関数を手動で作成しましたが、これは簡単に作成でき、マウス選択機能のみを実装しており、キーボード選択はサポートしていません。この機能はプロジェクト内の多くの場所で使用されるため、慎重に行う必要があります。 select2 プラグインの機能が現在のニーズを満たすことができることがわかりました。
jquery プラグイン select2 を使用するときに、json データを渡す場合でも、jsonp を介してデータを取得する場合でも、正しく返されるという疑問に遭遇しました。ただし、ドロップダウン リスト内の項目は選択できず、マウスやキーボードによる選択も無効になります。
その後、select2 プラグインが選択の基準としてデータ内の ID フィールドを使用していることがわかりました。したがって、json であっても jsonp であっても、ajax によって返されるデータには id フィールドが必要です。このような ID が実際のデータベースに存在しない場合は、手動で ID を作成することもできますが、ID の一意性を確保する必要があります。
テンプレート ファイル try_diy.tpl のソース コードはここにリストされています:
列入力ボックスはプラグインが機能する場所ですが、ページが送信されるときに返される値は ID です。ユーザーが選択したセクションをユーザーに提示します。コントローラーが ID 値を受け取り、それが空ではない場合、そのフォーラムに対応する ID 値に基づいて、対応するフォーラム名を照会します。同時にページ上にIDも表示されます。 select2プラグインは構築した
<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 style="BACKGROUND-COLOR: #f5f5f5; COLOR: #008000"> URL を入力してくださいjsonp リクエストのアドレス <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 + "</script>
} ,
formatSelection: function(運動) {
運動.name を返す
} $('#colum').change(function( ){
frm.submit();
});
var name = $("#columname").val();
if(name){
$("#s2id_colum").find("span") .text(name);
}
});
コードをコピーします。
コードは次のとおりです:
クラス 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

PHPは、特にWeb開発の分野で、最新のプログラミングで強力で広く使用されているツールのままです。 1)PHPは使いやすく、データベースとシームレスに統合されており、多くの開発者にとって最初の選択肢です。 2)動的コンテンツ生成とオブジェクト指向プログラミングをサポートし、Webサイトを迅速に作成および保守するのに適しています。 3)PHPのパフォーマンスは、データベースクエリをキャッシュおよび最適化することで改善でき、その広範なコミュニティと豊富なエコシステムにより、今日のテクノロジースタックでは依然として重要になります。

PHPでは、弱い参照クラスを通じて弱い参照が実装され、ガベージコレクターがオブジェクトの回収を妨げません。弱い参照は、キャッシュシステムやイベントリスナーなどのシナリオに適しています。オブジェクトの生存を保証することはできず、ごみ収集が遅れる可能性があることに注意する必要があります。

\ _ \ _ Invokeメソッドを使用すると、オブジェクトを関数のように呼び出すことができます。 1。オブジェクトを呼び出すことができるように\ _ \ _呼び出しメソッドを定義します。 2。$ obj(...)構文を使用すると、PHPは\ _ \ _ Invokeメソッドを実行します。 3。ロギングや計算機、コードの柔軟性の向上、読みやすさなどのシナリオに適しています。

繊維はPhp8.1で導入され、同時処理機能が改善されました。 1)繊維は、コルーチンと同様の軽量の並行性モデルです。 2)開発者がタスクの実行フローを手動で制御できるようにし、I/O集約型タスクの処理に適しています。 3)繊維を使用すると、より効率的で応答性の高いコードを書き込むことができます。

PHPコミュニティは、開発者の成長を支援するための豊富なリソースとサポートを提供します。 1)リソースには、公式のドキュメント、チュートリアル、ブログ、LaravelやSymfonyなどのオープンソースプロジェクトが含まれます。 2)StackOverFlow、Reddit、およびSlackチャネルを通じてサポートを取得できます。 3)開発動向は、RFCに従うことで学ぶことができます。 4)コミュニティへの統合は、積極的な参加、コード共有への貢献、および学習共有への貢献を通じて達成できます。

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

PHPは死にかけていませんが、常に適応して進化しています。 1)PHPは、1994年以来、新しいテクノロジーの傾向に適応するために複数のバージョンの反復を受けています。 2)現在、電子商取引、コンテンツ管理システム、その他の分野で広く使用されています。 3)PHP8は、パフォーマンスと近代化を改善するために、JITコンパイラおよびその他の機能を導入します。 4)Opcacheを使用してPSR-12標準に従って、パフォーマンスとコードの品質を最適化します。

PHPの将来は、新しいテクノロジーの傾向に適応し、革新的な機能を導入することで達成されます。1)クラウドコンピューティング、コンテナ化、マイクロサービスアーキテクチャに適応し、DockerとKubernetesをサポートします。 2)パフォーマンスとデータ処理の効率を改善するために、JITコンパイラと列挙タイプを導入します。 3)パフォーマンスを継続的に最適化し、ベストプラクティスを促進します。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

メモ帳++7.3.1
使いやすく無料のコードエディター

Dreamweaver Mac版
ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン
