Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » jQuery » Дополнительные поля на Ajax как в категории при добавлении новости

Дополнительные поля на Ajax как в категории при добавлении новости


     25.01.2014    дополнительные поля, Ajax, категория    jQuery, Общие вопросы по PHP    6088

вопрос
Всем привет! Очень долго искал в интернете такую реализацию:
Организация формы Список дополнительных полей похожую на форму Категории новости при добавлении статьи.
Встретил http://www.rudebox.org.ua/create-consistent-choice-using-ajax-rudebox/ такое. Как я понимаю, выборка категории построена на (choice).
Пытался повторить нечто подобное - но результата ноль. Возможно из-за того, что я добавляю библиотеки существующие, возможно добавляю не туда и не то.
Хотелось бы сделать аналогично http://www.rudebox.org.ua/create-consistent-choice-using-ajax-rudebox/ - т.е. чтобы была последовательная выборка значений дополнительного поля, на примере Страна -> Область -> Город. Или же хотя бы просто аналогично форме выбора категории новости(при публикации).
В общем, жду от Вас помощи!
P.S. Я как понимаю если делать для одного Дополнительного поля отдельно, то необходимо будет заполнять отдельно select и option , так вот следовательно вопрос, можно ли вообще заменить Форму список на форму как у категории новостей,Ajax????

Ответил: estverum


Данный код изменит форму "список" в дополнительном поле, похожую на форму при выборе категории.
Суть в том, что в Вашем файле addnews.tpl есть код
<link rel="stylesheet" type="text/css" href="engine/skins/chosen/chosen.css"/>
<script type="text/javascript" src="engine/skins/chosen/chosen.js"></script>
<script type="text/javascript">
$(function(){
    $('#category).chosen({allow_single_deselect:true, no_results_text: 'Ничего не найдено'});
    
});
</script>

Если Вы желаете чтобы ваша форма список для дополнительного поля была как в категории необходимо в коде вверху добавить после
$('#yourId).chosen({allow_single_deselect:true, no_results_text: 'Ничего не найдено'});

аналогичное поле изменив yourid - на свой id="..." в классе , тогда в xfields.php(он находится по пути engine/inc/) находите строку
HTML;
      } elseif ($value[3] == "select") {
        $output .= <<<HTML

<tr id="$holderid">
<td class="addnews">$value[1]:</td>
<td class="xfields" colspan="2"><select name="xfield[$fieldname]">

И заменяете на

<tr id="$holderid">
<td class="addnews"><b>$value[1]:</b></td>
<td class="xfields" colspan="2"><select data-placeholder="Выберите...$value[1]" name="xfield[$fieldname]" id="$fieldname" style="width:250px;">

Теперь чтобы поменять вид формы список дополнительного поля, достаточно ввести в
$('#daybirthday').chosen({allow_single_deselect:true, no_results_text: 'Ничего не найдено'});

вместо daybirthday - названия вашего дополнительного поля,которое вы писала на латинском в админпанели при добавлении этого поля.

Это действует только на дополнительные поля форме список.

10 комментариев

ПафНутиЙ
Админ

ПафНутиЙ - 25 января 2014 11:41 -

Если вы озвучите конкретную цель, которую хотите достигнуть - возможно решение найдётся более быстро.

Каков вопрос - таков и ответ. Просто помните об этом.

estverum
Юзер

estverum - 25 января 2014 15:12 -


Как видим на картинке (надеюсь картинка прикрепилась) поле список дополнительного поля похож на выбор категории, которая сделана по этому http://www.rudebox.org.ua/create-consistent-choice-using-ajax-rudebox/ принципу.
Вопрос заключается в том как сделать такое поле список в дополнительных полях. т.е. убрать стандартный способ выбора из списка.

estverum
Юзер

estverum - 25 января 2014 15:15 -

А идея заключается в том, чтобы создать список Стран -> Области - > города на дополнительном поле.
Видел, что данная тема уже была где-то затронута, но так и ответа нигде не было.

estverum
Юзер

estverum - 25 января 2014 19:48 -

кто-нибудь может помочь?!

ПафНутиЙ
Админ

ПафНутиЙ - 25 января 2014 23:36 -

может всё же имеет смысл прицепить КЛАДР или ФИАС?

Каков вопрос - таков и ответ. Просто помните об этом.

estverum
Юзер

estverum - 25 января 2014 23:53 -

Цитата: ПафНутиЙ
КЛАДР или ФИАС
- это типо к БД прицепить,чтобы брал результаты вывода оттуда???? или я ошибаюсь.
Я думаю решить все проще, но для этого мне надо вариант дополнительного поля "список" сделать выпадающим,как при выборе категории. Чтобы и во время добавления новости и во время выбора в уже опубликованной новости он был как у приведенного выше примера. Остальное я думаю,что смогу реализовать сам через else и т.д.

estverum
Юзер

estverum - 25 января 2014 23:58 -

я думаю, что для выполнения этой задачи необходимо править в engine/modules/addnews.php или в engine/inc/xfields.php... а что именно править не знаю. Код здесь http://www.rudebox.org.ua/create-consistent-choice-using-ajax-rudebox/ и в файлах DLE отличается (ну это и понятно, DLE сделало значения переменных под себя).

estverum
Юзер

estverum - 26 января 2014 00:43 -

Попробывал это
<select data-placeholder="Выберите страну ..." name="xfield[country]" id="category" onchange="onTypeChange(this.value)" style="width:350px;"><option value="0"></option><option style="color: black" value="1" >Украина</option><option style="color: black" value="2" >Россия</option></select> 

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

estverum
Юзер

estverum - 26 января 2014 01:38 -

Всё! Сам решил! )))) Все проще простого оказалось ))))

dess
Юзер

dess - 10 августа 2017 14:57 -

Решил попробовать реализовать доп поле таким же мульти-списком. Появилась проблемка, после отправки новости в бд, доп поле записывает одно значение... Как заставить работать для всех выбранных значений списка?
DLE 11.3

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх