Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 32 Ответов
  • 1894 Просмотров
*

ghostcom

  • Захожу иногда
  • 103
  • 1 / 0
   Известно что  <FORM> внутри <FORM> не поддерживается! Но как же быть?
   Есть компонент  со стандартной джумловской сортировкой пунктов (фронтенд) которая реализуется только в тегах <form>. Точней список товаров с различным кол-ом цен от 1 до 5 (без всяких карточек товаров). Цены добавляются в корзину AJAXом тоже в теге <form>
Код: php


<form id="adminForm" method="post" name="adminForm">
                     
                      <h3><?php echo $item->title; ?></h3>

                      <div class="panel_pl">

                        <?php if ($item->price_1 > 0): ?>
                        <div class="box">
                          <form method="post" action="" class="cart">
                              <div><?php echo $params->get('price_title_1'); ?></div>
                              <fieldset>
                                 <input type="hidden" name="cartToken" value="<?php echo $session->get('cartToken');?>" />
                                 <input type="hidden" name="my-item-id" value="<?php echo $item->id; ?>" />
                                 <input type="hidden" name="my-item-name" value="<?php echo $item->title; ?> - <?php echo $params->get('price_title_1'); ?>" />
                                 <input type="hidden" name="my-item-price" value="<?php echo $item->price_1; ?>" />
                                 <input type="hidden" name="my-item-qty" value="1" size="1" />
                                 <input type="submit" name="my-add-button" value="<?php echo $currencySymbol ?><?php echo $item->price_1; ?>" class="button" />
                              </fieldset>
                           </form>
                        </div>
                        <?php endif; ?>

                        <?php if ($item->price_2 > 0): ?>
                        <div class="box">
                           <form method="post" action="" class="cart">
                              <div><?php echo $params->get('price_title_2'); ?></div>
                              <fieldset>
                                 <input type="hidden" name="cartToken" value="<?php echo $session->get('cartToken');?>" />
                                 <input type="hidden" name="my-item-id" value="<?php echo $item->id; ?>" />
                                 <input type="hidden" name="my-item-name" value="<?php echo $item->title; ?> - <?php echo $params->get('price_title_2'); ?>" />
                                 <input type="hidden" name="my-item-price" value="<?php echo $item->price_2; ?>" />
                                 <input type="hidden" name="my-item-qty" value="1" size="1" />
                                 <input type="submit" name="my-add-button" value="<?php echo $currencySymbol ?><?php echo $item->price_2; ?>" class="button" />
                              </fieldset>
                           </form>

                        <?php  // ..... и т.д.
                        ?>

                      </div>
</form>


Может кто реализовывал такое. Будут полезны любые подсказки.
*

ghostcom

  • Захожу иногда
  • 103
  • 1 / 0
Возможно ли реализовать внутреннюю форму в контроллере?
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Не совсем понял, что вы хотите и почему формы не работают.
RSForm их использует и я практикую там же.
Кем известно то? ^-^

Например их код из контроллера:
      $form = JRequest::getVar('form');
      $formId = (int) @$form['formId'];

И дивы "ловим".

А то что <form> видоизменили-логика не меняется, насколько я понимаю.

Если аяксом, то можно поймать:

Код
<script> 
        $(document).ready(function() {
            $('#myForm').ajaxForm(function() {
                alert("Мы поймали AJAX форму!");
            });
        });
</script>
« Последнее редактирование: 08.05.2016, 18:05:20 от vipiusss »
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

ghostcom

  • Захожу иногда
  • 103
  • 1 / 0
при данной реализации в первом блоке class="box" на странице не выводится тег form! И форма не работает AJAX. Во втором блоке все нормально и работает. Вроде как браузеры не обробатывают правильно такое, нет?
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Вы скажите, что вам надо отсортировать?
<fieldset> ?

http://ruseller.com/lessons/les756/demo/demo_3.html
пример с кодом, это вы хотите? просто я не понял в шапке темы.
и всё прекрасно с формами работает.и на аяксе, как вы хотите.
и разжёвывание в коде на русском(навсяк)
« Последнее редактирование: 08.05.2016, 18:22:41 от vipiusss »
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

ghostcom

  • Захожу иногда
  • 103
  • 1 / 0
Вы имеете в виду зачем здесь <fieldset> - в принципе не зачем) это черновик

А ссылочка очень интересная сейчас буду изучать.
*

ghostcom

  • Захожу иногда
  • 103
  • 1 / 0
Проблема не решается. Сортировка у меня работает. Трабл в том что внутренняя форма некорректно (почемуто) работает внутри родительской формы.
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
форма в форме?
это как?
сделайте не форму в форме, а class в id формы,id будет главным для формы, а внутренняя классы иметь будут.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

ghostcom

  • Захожу иногда
  • 103
  • 1 / 0
Голова уже кводратная)) отвечаю на вопрос

Вы скажите, что вам надо отсортировать?
<fieldset> ?

Выводится список foreach из базы и его я сортирую, а это как бы одна запись. просто скопировал только нужный кусок. Сортирую не <fieldset>)))
*

ghostcom

  • Захожу иногда
  • 103
  • 1 / 0
форма в форме?
это как?
сделайте не форму в форме, а class в id формы,id будет главным для формы, а внутренняя классы иметь будут.


а можно поподробней, я совсем не профи
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
http://php5.kiev.ua/manual/ru/control-structures.foreach.html
ваши массивы.
насколько я понял массивы через фореч.

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

///

если знающие фореч и понимающиее, что за список и куда и зачем ещё форма-отпишуться.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Что за ерунда? Раз уже
   Известно что  <FORM> внутри <FORM> не поддерживается!
, то нужно сделать так, чтобы такого не было, а не продолжать дальше и удивляться
внутренняя форма некорректно (почемуто) работает внутри родительской формы.
Какой компонент? Что именно нужно сделать (только не надо: чтобы форма работала внутри формы)? Дайте больше конкретной информации, а не только кусок шаблона.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

ghostcom

  • Захожу иногда
  • 103
  • 1 / 0
Т.к. я не силен в кодинге, меня легко ввести в заблуждение
Не совсем понял, что вы хотите и почему формы не работают.
RSForm их использует и я практикую там же.
Кем известно то? ^-^

---------------

Какой компонент? Что именно нужно сделать (только не надо: чтобы форма работала внутри формы)? Дайте больше конкретной информации, а не только кусок шаблона.

Компонент самописный в кратце описан в первом посте. Даже если без кусков шаблона. Если столкнулись с такой проблемой как обыграт в Joomla. Вынести за пределы не могу. Поэтому и задал вопрос.

Пытаюсь сделать запрос в модель по ссылке, где будет внутренняя форма. Пока безрезультатно(. С моими знаниями и перебором всего что пишут в интернете уйдет не одна неделя. Даже не знаю возможно такое реализовать. Поэтому и задал такой вопрос здесь. Это ведь форум Joomla.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
ОК, я уже понял, что задавать вопросы вы не умеете. Тогда ничем не могу помочь.
Единственное, что могу сказать: HTML не разрешает иметь форму внутри формы, если хотите одновременно отправить несколько форм - используйте JavaScript. Как конкретно - не могу сказать, пока не получу конкретный вопрос.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
+1 к "форма в форме"
тоже не понял, что не раз в теме писал и перечислил несколько вариантов, возможно это правильный ответ, наблюдая за ответами.
ТС просил я вас-задайте вопрос, напишите цель просто как вы её видите, без участков кода, обычными словами.

Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

ghostcom

  • Захожу иногда
  • 103
  • 1 / 0
Я уже не знаю куда конкретней задавать вопрос. Хотел побыстрому получить, ответ только время потерял За помощь спасибо! Буду капать в сторону JavaScript. Может позже соберусь, для конкретной задачи вопроса!
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Ну если Роберт не понимает, точнее нет конкретики(думал я такой одарённый), то уже не знаю...
Вы писали:

  • Известно что  <FORM> внутри <FORM> не поддерживается! Но как же быть? - поддерживается
  • Есть компонент  со стандартной джумловской сортировкой пунктов (фронтенд) которая реализуется только в тегах <form>. - какой именно?!
  • Точней список товаров с различным кол-ом цен от 1 до 5 (без всяких карточек товаров). Цены добавляются в корзину AJAXом тоже в теге <form> - допустим, и где ваш вопрос?

Это я уже додумываю что массив, вы уже сказали фореч и даю броские ответы надеясь попасть в нужное...и т.д. Это мы должны вытягивать из вас вопросы?
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

ghostcom

  • Захожу иногда
  • 103
  • 1 / 0
Вы что пьяный (извеняюсь)
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
всё.я только щас, перечитв, понял.моя вина, приношу извинения, не внимателен был вчера, переработался и основываясь на вчерашнем, не читав, продолжил.
позже отпишу.
ещё раз приношу извинения.
« Последнее редактирование: 09.05.2016, 09:37:34 от vipiusss »
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

ghostcom

  • Захожу иногда
  • 103
  • 1 / 0
компонент самописный, я сам написал компонент, список каких то товаров с пятью ценами в каждой записи, самописный компонент, компонент самописный. ..... компонент, не модуль не плагин, список товаров.....

Получилось то что получилось, код наверху, форма в форме. Ничего сложного. Как решить? Убрать вторую форму из нутри не могу, ломается весь смысл задумки. Наружнюю форму убрать не могу-это стандартная джумловская сортировка. Вы знакомы с Joomla?

 Ответили-JavaScript. Спасибо. Хоть на том.

  • Известно что  <FORM> внутри <FORM> не поддерживается! Но как же быть? - поддерживается

Не поддерживается подтвердили же уже

Масив и фореч тут ваще ни какой роли не играет



*

ghostcom

  • Захожу иногда
  • 103
  • 1 / 0
всё.я только щас, перечитв, понял.моя вина, приношу извинения, не внимателен был вчера, переработался и основываясь на вчерашнем, не читав, продолжил.
позже отпишу.
ещё раз приношу извинения.

Да ладно бывает, я тоже извеняюсь
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
а если при соблюдении условия  <?php if ($item->price_1 > 0): ?> div "бокс" вызвать инклуде (<?php include 'ФОРМА ВНУТРЕННЯЯ.php'; ?>) из левого файла, а тут перед <?php endif; ?> закончить дополнением-else вернуться к первой форме?
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

ghostcom

  • Захожу иногда
  • 103
  • 1 / 0
а при загрузке DOM все равно в одном HTML будет. Надо чтоб внутренние формы подгружались динамически после загрузки страницы. По нажатию

*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
а если дополнить:

$.ajax({
  url: 'вн.форма.php?action=ваш див',
  success: function(data) {
    $('.results').html(data);
  }
});

это наподобие else вернёт вас на исполнителя: вн.форма.php
///
хотя нет, наверно форма в форме так тоже не сработает, хотя попробуйте.
« Последнее редактирование: 09.05.2016, 10:20:43 от vipiusss »
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

ghostcom

  • Захожу иногда
  • 103
  • 1 / 0
ну да как то так надо делать. но я не знаю как это все прописать

какова вида ссылка должна быть на этот скрипт?
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
какая ссылка? оберните в <script></script> прямо в теле
вы попробуйте будет ли этот GET метод работать, потому что можно ещё рискнуть другим скриптом.
стояло бы это всё у меня-давно бы не гадали.
а так методом тыка.
ну или ждите знающих скрипт хорошо, в любом случае, вы ничего не теряете пробуя.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Спойлер
[свернуть]

и forma1.php:

Спойлер
[свернуть]

попробуйте так как то...может что упустил.может и не верно, наугад, не пробуя.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

ghostcom

  • Захожу иногда
  • 103
  • 1 / 0
Тоже самое.

А если сделать как нибудь так.

Код: php
<form id="adminForm" method="post" name="adminForm">
 
                   <h3><?php echo $item->title; ?></h3>
 
                   <div class="panel_pl">
 
                        <?php if ($item->price_1 > 0): ?> // если цена_1 больше 0 показать box
                            <div class="box">
                                <a href="на сабмит price_1">ЦЕНА_1</a>
                            </div>
                        <?php endif; ?>
 

                        <?php if ($item->price_2 > 0): ?> // если цена_2 больше 0 показать box
                            <div class="box">
                                <a href="на сабмит price_2">ЦЕНА_2</a>
                            </div>

                   </div>
</form>

<form id="price_1" method="post" action="" class="cart">
                              <div><?php echo $params->get('price_title_1'); ?></div>
                              <fieldset>
                                 <input type="hidden" name="cartToken" value="<?php echo $session->get('cartToken');?>" />
                                 <input type="hidden" name="my-item-id" value="<?php echo $item->id; ?>" />
                                 <input type="hidden" name="my-item-name" value="<?php echo $item->title; ?> - <?php echo $params->get('price_title_1'); ?>" />
                                 <input type="hidden" name="my-item-price" value="<?php echo $item->price_1; ?>" />
                                 <input type="hidden" name="my-item-qty" value="1" size="1" />
                                 <input type="submit" name="my-add-button" value="<?php echo $currencySymbol ?><?php echo $item->price_1; ?>" class="button" />
                              </fieldset>
                           </form>

<form id="price_2" method="post" action="" class="cart">
                              <div><?php echo $params->get('price_title_2'); ?></div>
                              <fieldset>
                                 <input type="hidden" name="cartToken" value="<?php echo $session->get('cartToken');?>" />
                                 <input type="hidden" name="my-item-id" value="<?php echo $item->id; ?>" />
                                 <input type="hidden" name="my-item-name" value="<?php echo $item->title; ?> - <?php echo $params->get('price_title_2'); ?>" />
                                 <input type="hidden" name="my-item-price" value="<?php echo $item->price_2; ?>" />
                                 <input type="hidden" name="my-item-qty" value="1" size="1" />
                                 <input type="submit" name="my-add-button" value="<?php echo $currencySymbol ?><?php echo $item->price_2; ?>" class="button" />
                              </fieldset>
                           </form>

Вынести формы за пределы и сделать ссылку на сабмит конкретной формы.

Возможно такое. Если да то какая должна быть ссылка на форму с ID
*

ghostcom

  • Захожу иногда
  • 103
  • 1 / 0
тоже не получается страница перезагружается, товар не добавляется
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Используйте jQuery.ajax, в этом случае вам даже не нужна обертка <form/>, достаточно иметь inputs с уникальными идентифиткаторами (id, class etc.).
Спойлер
[свернуть]
Если же нужно одним нажатием отправить несколько форм, то принцип тот же, только нужно организовать цепочку, засовывая последующее действие в success предыдущего.
« Последнее редактирование: 09.05.2016, 13:53:49 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться