Хочу сделать Autocomplete в модуле [РЕШЕНО]

Главные вкладки

Аватар пользователя Jackinua Jackinua 21 октября 2009 в 17:02

Доброго дня

Хочу сделать в модуле поле autocomplete, значения в него брать из словаря, который существует

Попробывал просто продублировать строчку с страницы с уже имеющимся таким полем, но ничего не получилось.

Вот как выглядит
<input id="edit-taxonomy-tags-1" class="form-text form-autocomplete" type="text" value="" size="60" name="taxonomy[tags][1]" maxlength="1024" autocomplete="OFF"/>

Поле стало вида автозаполнения, но значения и не думают подгружатся, подскажите что сделать !!!?

Спасибо

Комментарии

Аватар пользователя Jackinua Jackinua 21 октября 2009 в 17:19

<div id="edit-name-wrapper" class="form-item">
<input id="edit-taxonomy-tags-1" class="title form-text form-autocomplete" type="text" name="taxonomy[tags][1]" autocomplete="OFF" maxlength="1024" size="70" value="пар"/>
</div>
<input id="edit-taxonomy-tags-1-autocomplete" class="autocomplete autocomplete-processed" type="hidden" value="http://localhost/site/taxonomy/autocomplete/1" disabled="disabled"/>

так тоже не помогает

Аватар пользователя Jackinua Jackinua 21 октября 2009 в 17:21

о нет тока не учить, я на примере хочу ) если оно у меня получится, то я запомню, а если прочитаю просто то не запоминаю, это мое проклятие

Аватар пользователя Jackinua Jackinua 21 октября 2009 в 18:10

Частично получилось, то есть получилось в материале вывести таксономический список

но

возникла следующая задача

мне из этого

<?php$form['taxonomy']['tags'][$vocabulary->vid] = array(
    '#type' => 'textfield',
    '#default_value' => $typed_string,
    '#maxlength' => 100,
    '#autocomplete_path' => 'taxonomy/autocomplete/'. $vocabulary->vid,
    '#required' => $vocabulary->required,
    '#title' => $vocabulary->name,
    '#description' => t('A comma-separated list of terms describing this content (Example: funny, bungie jumping, "Company, Inc.").')
  );

?>

надо сформировать вот это

<div id="edit-name-wrapper" class="form-item">
<input id="edit-taxonomy-tags-1" class="title form-text form-autocomplete" type="text" name="taxonomy[tags][1]" autocomplete="OFF" maxlength="1024" size="70" value="пар"/>
</div>
<input id="edit-taxonomy-tags-1-autocomplete" class="autocomplete autocomplete-processed" type="hidden" value="http://localhost/site/taxonomy/autocomplete/1" disabled="disabled"/>

чтоб использовать при динамическом добавлении (как я понимаю) в javascript

Аватар пользователя Jackinua Jackinua 21 октября 2009 в 18:13

в javascript добавляются небольшие формочки в которых и должен содержатся список, а так как у меня не получилось на гарячую вставить участок кода, то боюсь и при генерировании получится также, только больше ошибок

Аватар пользователя Jackinua Jackinua 21 октября 2009 в 18:41

Мне кажется я понял в чем проблема, я через javascript созданный элемент вызываю autocomplete, и тут путаница выходит с последовательность вызова функций. Может быть такое ? Я вызываю автозаполнение а функция не готова

Аватар пользователя Jackinua Jackinua 22 октября 2009 в 1:58

это не совсем мой модуль, я пытаюсь модернизировать модуль Модуль Simple Gmap (new +YandexMap)

А так и не разрешил проблему замены

Я поменял местами скрипты
Сразу загружается скрипт autocomplete.js, который заменяет теги input а затем чкрипт simple.js генерирует сами теги input, но без толку. Скрипты загружались наоборот

Думал что в этом проблема.

И еще в теле страницы, когда открываю html-код, то не вижу сгенрированных тегов input ..., чего не ожидал

хотя

Firebug видит эти теги

Странно, наверное теги в кеше )

Я в тупике )

Аватар пользователя Jackinua Jackinua 22 октября 2009 в 2:05

Скорее всего тут не надо выполнять скрипт autocomplete.js а сразу грузить в скрипте simple.js готовый автозаполняющийся-список, как его делать без понятия пока что, но понятно что по аналогии с autocomplete.js

Рад буду если меня поправите, дадите совет, или ссылочку на подобный топик

Аватар пользователя Nikit Nikit 22 октября 2009 в 2:22

какой-то странный подход в друпале. Обычно это легко делается модулем, ссылку исходного кода которого привёл выше.

Аватар пользователя Jackinua Jackinua 22 октября 2009 в 18:46

Drupal.behaviors.autocomplete(document);

дописал в скрипте и все ЗАРАБОТАЛО!!!!!

заработали все добавленные эллементы через js

P.S. Во бла читай не читай API а х догадаешься пока на живом не поковыряешься!!!

Аватар пользователя Jackinua Jackinua 22 октября 2009 в 18:49
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru" dir="ltr">
  <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAA-O3c-Om9Ocv... type="text/javascript"></script>
<link rel="shortcut icon" href="/site/misc/favicon.ico" type="image/x-icon" />
    <title>пар | Сайт</title>
    <link type="text/css" rel="stylesheet" media="all" href="/site/modules/cck/theme/content-module.css?b" />
<link type="text/css" rel="stylesheet" media="all" href="/site/modules/node/node.css?b" />
<link type="text/css" rel="stylesheet" media="all" href="/site/modules/system/defaults.css?b" />

<link type="text/css" rel="stylesheet" media="all" href="/site/modules/system/system.css?b" />
<link type="text/css" rel="stylesheet" media="all" href="/site/modules/system/system-menus.css?b" />
<link type="text/css" rel="stylesheet" media="all" href="/site/modules/user/user.css?b" />
<link type="text/css" rel="stylesheet" media="all" href="/site/modules/simple_gmap/simple_gmap.css?b" />
<link type="text/css" rel="stylesheet" media="all" href="/site/themes/garland/style.css?b" />
<link type="text/css" rel="stylesheet" media="all" href="/site/themes/garland/minnelli/minnelli.css?b" />
<link type="text/css" rel="stylesheet" media="print" href="/site/themes/garland/print.css?b" />
    <script type="text/javascript" src="/site/misc/jquery.js?b"></script>
<script type="text/javascript" src="/site/misc/drupal.js?b"></script>
<script type="text/javascript" src="/site/sites/default/files/languages/ru_aa6f91ec44cbf1dd6f820f2578a1f335.js?b"></script>
<script type="text/javascript" src="/site/misc/autocomplete.js?b"></script>
<script type="text/javascript" src="/site/modules/simple_gmap/simple_gmap.js?b"></script>

<script type="text/javascript" src="/site/misc/collapse.js?b"></script>
<script type="text/javascript" src="/site/misc/teaser.js?b"></script>
<script type="text/javascript" src="/site/misc/textarea.js?b"></script>
<script type="text/javascript">
<!--//--><![CDATA[//><!--
jQuery.extend(Drupal.settings, { "basePath": "/site/", "gmap_form": "TRUE", "marker": [ [ "0", "пар", "апр", "75.33782889869929", "-44.296875", "blank" ], [ "0", "просто", "рпо", "56.299472404196905", "59.139404296875", "number1" ] ], "map": [ "56.18225387824831", "59.501953125", "6" ], "ico": "modules/simple_gmap/icon/", "map_default": { "data_map": [ "30.751277776257812", "-82.96875", "0" ], "nodrag": 0, "nokeyboard": 0, "nomousezoom": 0, "nocontzoom": 0, "overview": 0, "scale": 1, "pet_tail": "G_NORMAL_MAP", "G_SATELLITE_MAP": 1, "G_NORMAL_MAP": 1, "G_HYBRID_MAP": 1, "G_PHYSICAL_MAP": 1, "YA_SATELLITE_MAP": 1, "YA_NORMAL_MAP": 1, "YA_HYBRID_MAP": 1, "t_YA_SATELLITE_MAP": "Satelite", "t_YA_NORMAL_MAP": "Map", "t_YA_HYBRID_MAP": "Hybrid", "gmap_control": "none", "gmap_control_type": "Menu", "gmap_types_TAXONOMY_TITLE": 1 }, "teaserCheckbox": { "edit-teaser-js": "edit-teaser-include" }, "teaser": { "edit-teaser-js": "edit-body" } });
//--><!]]>
</script>
<script>
        function a(){
        //alert("gg");
        //var tbody = d.getElementById('x').getElementsByTagName('div')[0];
        document.getElementById("x").innerHTML = "<div class=\"form-item\" id=\"edit-author-wrapper\"><label for=\"edit-author\">Автор: <\/label><input type=\"text\" maxlength=\"60\" name=\"author\" id=\"edit-author\" size=\"30\" value=\"\" class=\"form-text form-autocomplete\" \/></div><input class=\"autocomplete\" type=\"hidden\" id=\"edit-author-autocomplete\" value=\"http:\/\/localhost\/site\/user\/autocomplete\" disabled=\"disabled\" \/>";
        Drupal.behaviors.autocomplete(document);
        }
</script>
    <!--[if lt IE 7]>
     <link type="text/css" rel="stylesheet" media="all" href="/site/themes/garland/fix-ie.css" />    <![endif]-->
  </head>
  <body class="sidebar-left">
<div class="form-item" id="edit-author2-wrapper">
 <label for="edit-author2">Автор: </label>
 <input type="text" maxlength="60" name="author2" id="edit-author2" size="30" value="" class="form-text form-autocomplete" />
</div>
<input class="autocomplete" type="hidden" id="edit-author2-autocomplete" value="http://localhost/site/user/autocomplete" disabled="disabled" />

<div id="x"></div>

<input type="submit" onClick="a()">
    </body>
</html>

Может будет полезным, хотя тут много чего не понятно сразу

Аватар пользователя Jackinua Jackinua 23 октября 2009 в 16:33

та хз, я выше писал, понятнее не могу выразиться ), в общем модуль преобразуется, правда будет привязан к словарю, для моих целей этого хваатит