Автоподбор поля

модификация автозаполнения поля город

#16 18 января 2013 в 17:11
instantcms.ru/forum/thread11011.html и пост выше к нему.
#17 18 января 2013 в 19:08
А как его можно реализовать для поля профессия? т.е. как должен выглядеть javascript на странице?
#18 18 января 2013 в 19:11
Стандартный метод с сайта JQury:
  1. <script>
  2. $(function() {
  3. var availableTags = [
  4. "ActionScript",
  5. "AppleScript",
  6. "Asp",
  7. "BASIC",
  8. "C",
  9. "C++",
  10. "Clojure",
  11. "COBOL",
  12. "ColdFusion",
  13. "Erlang",
  14. "Fortran",
  15. "Groovy",
  16. "Haskell",
  17. "Java",
  18. "JavaScript",
  19. "Lisp",
  20. "Perl",
  21. "PHP",
  22. "Python",
  23. "Ruby",
  24. "Scala",
  25. "Scheme"
  26. ];
  27. $( "#tags" ).autocomplete({
  28. source: availableTags
  29. });
  30. });
  31. </script>
не работает с версией скрипта в инстанте!
#19 18 января 2013 в 19:25
picaboo, Спасибо огромное, это решило практически все трудности! Остался только один момент. Вот создал я необходимое поле профессия или еще какое то, как мне реализовать функцию автозаполнения этого поля? Например, как реализован поиск пользователей по городу на этом сайте? Методы, указанные на сайте jqury не работают в версии библиотеки инстанта.
#20 18 января 2013 в 19:27
И это не работает:

  1. <script>
  2. $(function() {
  3. function log( message ) {
  4. $( "<div>" ).text( message ).prependTo( "#log" );
  5. $( "#log" ).scrollTop( 0 );
  6. }
  7.  
  8. $( "#birds" ).autocomplete({
  9. source: "search.php",
  10. minLength: 2,
  11. select: function( event, ui ) {
  12. log( ui.item ?
  13. "Selected: " + ui.item.value + " aka " + ui.item.id :
  14. "Nothing selected, input was " + this.value );
  15. }
  16. });
  17. });
  18. </script>
#21 18 января 2013 в 20:25
=)
#22 18 января 2013 в 20:55
lokanaft, подсказал бы лучше😊вишь как человек мучается. но зато упорный!
#23 19 января 2013 в 01:42


instantcms.ru/forum/thread11011.html и пост выше к нему.

picaboo

В 1.10 все совсем по другому. Никак не получается прикрутить данный метод.
#24 19 января 2013 в 08:25
Если собираетесь использовать подбор города не только при регистрации а еще где, например при редактировании профиля, то правильнее всего будет добавить файл с нужным запросом.

создаете файл в папке \www\core\ajax
с именем, например prof.php
внутри пишете, что должно выводится при обработке нужного поля, например так :


  1. <?php
  2. define('PATH', $_SERVER['DOCUMENT_ROOT']);
  3. include(PATH.'/core/ajax/ajax_core.php');
  4. $q = cmsCore::request('q', 'str', '');
  5. if (!$q) { cmsCore::halt(); }
  6. $q = mb_strtolower($q);
  7. $sql = "SELECT professia FROM cms_user_professions WHERE LOWER(professia) LIKE '{$q}%' GROUP BY professia LIMIT 10";
  8. $rs = $inDB->query($sql);
  9. while ($item = $inDB->fetch_assoc($rs)){
  10. echo $item['professia']."\n";}
  11. cmsCore::halt();
  12. ?>
далее в нужном компоненте, через frontend, вызываете функцию которая внедрит скрипт в нужное место,
например при регистрации это будет файл \www\components\registration\frontend.php
после строки:
$smarty = $inCore->initSmarty('components', 'com_registration.tpl');

нужно добавить:
$smarty->assign('autocomplete_js', $inPage->getAutocompleteJS('prof', 'prof_id', false));

где prof_id -> это id поля при вводе в которое, будет происходить автоподбор с выпадающим списком.

и последнее это подключить autocomplete в TPL файле шаблона,
например в файл com_registration.tpl
добавить строку :
{$autocomplete_js}


Можно все это и в fronted конечно сделать… Но так вы сможете где угодно подключать автокомплит по профессиям.

и еще, если автокомплит уже подключен на той странице которая вам нужна, то
просто поменяйте имя переменной :
$smarty->assign('autocomplete_js_dva', $inPage->getAutocompleteJS('prof', 'prof_id', false));

и соответственно в шаблоне :{$autocomplete_js_dva}
#25 19 января 2013 в 11:32
KS, сделал все по аналогии — не работает! Повторил каждый шаг, все несколько раз перепроверил, результата ноль.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.