Добрый день, делаю автокомплит по статье http://xandeadx.ru/blog/drupal/344
Столкнулся с проблемой ввиду своей не высокой компетентности
В примере xandeadx сам создаёт страницу с полем, и подключает ей js
jquery_autocomplete.js
Drupal.behaviors.jqueryui_autocomplete = {
attach: function (context, settings) {
$('input[name="title"]').autocomplete({
source: Drupal.settings.basePath + 'test/autocomplete'
});
}
};
}(jQuery));
jquery_autocomplete.module
<?php
/**
* Implements hook_menu()
*/
function jqueryui_autocomplete_menu() {
$items['test/form'] = array(
'page callback' => 'drupal_get_form',
'page arguments' => array('jqueryui_autocomplete_test_form'),
'access arguments' => array('access content'),
);
$items['test/autocomplete'] = array(
'page callback' => 'jqueryui_autocomplete_autocomplete',
'access arguments' => array('access content'),
);
return $items;
}
/**
* Form builder
*/
function jqueryui_autocomplete_test_form() {
$form['title'] = array(
'#type' => 'textfield',
'#title' => 'Title',
);
$form['#attached']['library'][] = array('system', 'ui.autocomplete');
$form['#attached']['js'][] = drupal_get_path('module', 'jqueryui_autocomplete') . '/jqueryui_autocomplete.js';
return $form;
}
/**
* Menu callback
*/
function jqueryui_autocomplete_autocomplete() {
$titles = db_select('node', 'n')
->fields('n', array('title'))
->condition('n.title', '%' . db_like($_GET['term']) . '%', 'LIKE')
->execute()
->fetchCol();
drupal_json_output($titles);
}
?>
У меня ситуация такая, что мне нужно создавать страницу с формой, у меня она уже есть и это раскрытый фильтр Views
Подскажите пожалуйста, как в моем случае например этот колбэк привязать к моему полю
Комментарии
Если я правильно понял вопрос, то вместо
$('input[name="title"]').autocomplete({
source: Drupal.settings.basePath + 'test/autocomplete'
});
нужно
$('#my_custom_input').autocomplete({
source: Drupal.settings.basePath + 'test/autocomplete'
});
Не совсем, т.к. так не будет работать, потому что похоже здесь
<?php
function jqueryui_autocomplete_test_form() {
$form['title'] = array(
'#type' => 'textfield',
'#title' => 'Title',
);
$form['#attached']['library'][] = array('system', 'ui.autocomplete');
$form['#attached']['js'][] = drupal_get_path('module', 'jqueryui_autocomplete') . '/jqueryui_autocomplete.js';
return $form;
}
?>
той форме ещё подключается кастомный скрипт, и на моей сторонней форме такого нет, и в итоге после таких изменений ничего не срабатывает :/
Ну дак сделай форм альтер твоей формы и приаттач к ней этот скрипт