Skip to content

Поле с подгрузкой списка пользователей

Приветствую.

 

делаю небольшой модуль, добавляющий в профиль пользователя некотрые опции.

Так имеется поле (input text) куда должно быть вписан ник пользователя. Оно должно работать автоподбором по первым введенным символам, как при создании ЛС например.

Долго изучал как оно функционирует при создании ЛС, но так до конца и непонял.

 

идет вызов app=core&module=ajax&section=findnames&do=get-member-names&secure_key=' + ipb.vars['secure_hash'] + '&name='

 

добавление скрипта

<script type="text/javascript">
	document.observe("dom:loaded", function(){
		var url = ipb.vars['base_url'] + 'app=core&module=ajax&section=findnames&do=get-member-names&secure_key=' + ipb.vars['secure_hash'] + '&name=';
		new ipb.Autocomplete( $('mem_name1'), { multibox: false, url: url, templates: { wrap: ipb.templates['autocomplete_wrap'], item: ipb.templates['autocomplete_item'] } } );
	});
	</script>

 

не спасет, видно что идет подгрузка (появлятся индикатор после ввода трех символов) но блок с никами не отображается.

 

объясните мне как правильно выглядит вся эта структура отслеживание keypress в поле и подгрузка списка пользователей

Featured Replies

Примерно так. Посмотрите в дебагере браузера состояние запроса и ответ от сервера, возможно чтото упущено в запросе.

  • Author

хм.. вроде заработало, в чем загвоздка была так и непонял, видать где-то сам описался в скрипте или в индификаторе поля

 

теперь проблема как это блок с подгруженными никами позиционировать? а то отображается по координатам 0,0 от начала окна, а хотелось бы к input привязать

Прикрепите его к этому элементу.

  • Author

подскажите где это сделать

 

код инпута

<input type="text" class="input_text" id="vr_nmem" name="vr_nmem" size="30" value="'.$this->request['vr_nmem'].'" >

 

код скрипта

<script type="text/javascript">
	document.observe("dom:loaded", function(){
	  var url = ipb.vars['base_url'] + 'app=core&module=ajax&section=findnames&do=get-member-names&secure_key=' + ipb.vars['secure_hash'] + '&name=';
          new ipb.Autocomplete( $('vr_nmem'), { multibox: false, url: url, templates: { wrap: ipb.templates['autocomplete_wrap'], item: ipb.templates['autocomplete_item'] } } );
 });
</script>

 

нашел вот такой формат позиционирования автокомплита, но в какой момент это вписывать

$("selector").autocomplete({ position:{my:"right top", at:"right bottom"} });

Edited by rabotnik

  • Author

выяснилось что, скрипт не работает или появляется сбой в позиционировании, если нужный инпут находится например на одной из вкладок профиля(вкладка не активна по умолчанию, подгружается только контент вкладки без перезагрузки страницы), а также если инпут расположен в изначально скрытом блоке.

 

как это обойти?

Edited by rabotnik

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.