peci1 / suggestinput
此包已被弃用且不再维护。未建议替代包。
文本字段动态建议器。
v2.1.1
2014-04-21 15:22 UTC
Requires
- php: >= 5.3.0
- nette/nette: ~2.1.0
This package is not auto-updated.
Last update: 2023-07-04 01:24:47 UTC
README
本教程适用于Nette框架用户,其他人需要根据自身需求进行调整。
本版本与Nette 2.1兼容。还有与Nette 2.0和0.9兼容的旧版本。请查阅 https://github.com/peci1/Nette-SuggestInput/releases 。
安装
只需将/libs/SuggestInput, /www/js 和 /www/css 复制到您的Nette项目
文件列表
/app
/presenters
SuggesterTestPresenter.php - an example presenter showing the usage
/templates
/SuggesterTest
default.phtml
/libs //You can copy this libs dir everywhere in your project
/SuggestInput
SuggestInput.php
license.txt
/Suggesters
ISuggester.php
ArraySuggester.php
DbSuggester.php
ConstantSuggester.php
/docs - this help :) and other help files - you don't need to copy them
/www
/js
jquery.suggest.js
jquery.bgiframe.js
suggestInput.js
/css
suggest.css
如果您不使用RobotLoader,您需要将SuggestInput.php包含到您的程序中。
不要忘记调用
Nette\Forms\Form::extensionMethod('Nette\Forms\Form::addSuggestInput', 'Nette\Addons\SuggestInput::addSuggestInput');
从您的引导或 BasePresenter::__construct()
。
在页面布局中包含以下JS库(按以下顺序)
- jQuery 1.10
- jQuery.bgiframe 3.0(包含在包中)
- jQuery.suggest 1.2修改用于SuggestInput(包含在包中)
- netteForms.js(Nette 2.0的一部分)
- suggestInput.js(包含在包中)并在页面布局中包含示例CSS文件
- suggest.css
使用建议输入
您需要一个返回JSON数组的建议项的presenter动作(它们通过AJAX(或更好的AJAJ - 异步JavaScript和JSON)加载)
因此,您需要一个建议器对象 - 该对象搜索某些"黑盒"并返回匹配的项。在动作和建议器(如果需要)中应使用相同的建议器。
您可以选择3个预定义的建议器
- ArraySuggester - 您提供一个项目数组,建议器在数组中搜索匹配的项
- DbSuggester - 在数据库表中搜索匹配的项(使用Nette\Database)
- ConstantSuggester - 总是建议相同的项(作为数组提供)或者您可以编写自己的建议器,但请实现ISuggester
最简单的情况
在最简单的情况下,您只需在创建的表单上调用
->addSuggestInput('uniqueId', 'Label', $this->link('suggest'))
。
这假设您创建了一个名为actionSuggest()
的动作。该动作使用一个建议器,您可以在组件工厂中创建它createComponentSuggester()
。
请参阅示例presenter以获取更多示例。
现场演示
您可以在 http://suggest-input.php5.cz/suggester-test/ 尝试现场演示