Форум русской поддержки Joomla!® CMS
10.12.2016, 11:02:03 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1] 2  Все   Вниз
  Добавить закладку  |  Печать  
Автор

<FORM> внутри <FORM> как организовать в компоненте?

 (Прочитано 466 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ghostcom
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 45



« : 08.05.2016, 16:33:40 »

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

Репутация: +0/-0
Offline Offline

Сообщений: 45



« Ответ #1 : 08.05.2016, 18:42:27 »

Возможно ли реализовать внутреннюю форму в контроллере?
Записан
vipiusss
Профи
********

Репутация: +261/-8
Offline Offline

Пол: Мужской
Сообщений: 4573


Skype: renor_


« Ответ #2 : 08.05.2016, 18:51:57 »

Не совсем понял, что вы хотите и почему формы не работают.
RSForm их использует и я практикую там же.
Кем известно то? Smiley

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

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

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

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

Код:
<script>
        $(document).ready(function() {
            $('#myForm').ajaxForm(function() {
                alert("Мы поймали AJAX форму!");
            });
        });
</script>
« Последнее редактирование: 08.05.2016, 19:05:20 от vipiusss » Записан
ghostcom
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 45



« Ответ #3 : 08.05.2016, 19:13:03 »

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

Репутация: +261/-8
Offline Offline

Пол: Мужской
Сообщений: 4573


Skype: renor_


« Ответ #4 : 08.05.2016, 19:17:37 »

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

http://ruseller.com/lessons/les756/demo/demo_3.html
пример с кодом, это вы хотите? просто я не понял в шапке темы.
и всё прекрасно с формами работает.и на аяксе, как вы хотите.
и разжёвывание в коде на русском(навсяк)
« Последнее редактирование: 08.05.2016, 19:22:41 от vipiusss » Записан
ghostcom
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 45



« Ответ #5 : 08.05.2016, 19:47:27 »

Вы имеете в виду зачем здесь <fieldset> - в принципе не зачем) это черновик

А ссылочка очень интересная сейчас буду изучать.
Записан
ghostcom
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 45



« Ответ #6 : 08.05.2016, 19:51:02 »

Проблема не решается. Сортировка у меня работает. Трабл в том что внутренняя форма некорректно (почемуто) работает внутри родительской формы.
Записан
vipiusss
Профи
********

Репутация: +261/-8
Offline Offline

Пол: Мужской
Сообщений: 4573


Skype: renor_


« Ответ #7 : 08.05.2016, 19:57:42 »

форма в форме?
это как?
сделайте не форму в форме, а class в id формы,id будет главным для формы, а внутренняя классы иметь будут.
Записан
ghostcom
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 45



« Ответ #8 : 08.05.2016, 20:04:35 »

Голова уже кводратная)) отвечаю на вопрос

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

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

Репутация: +0/-0
Offline Offline

Сообщений: 45



« Ответ #9 : 08.05.2016, 20:05:53 »

форма в форме?
это как?
сделайте не форму в форме, а class в id формы,id будет главным для формы, а внутренняя классы иметь будут.


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

Репутация: +261/-8
Offline Offline

Пол: Мужской
Сообщений: 4573


Skype: renor_


« Ответ #10 : 08.05.2016, 20:35:19 »

http://php5.kiev.ua/manual/ru/control-structures.foreach.html
ваши массивы.
насколько я понял массивы через фореч.

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

///

если знающие фореч и понимающиее, что за список и куда и зачем ещё форма-отпишуться.
Записан
robert
Профи
********

Репутация: +344/-11
Offline Offline

Пол: Мужской
Сообщений: 3595


« Ответ #11 : 08.05.2016, 22:37:15 »

Что за ерунда? Раз уже
   Известно что  <FORM> внутри <FORM> не поддерживается!
, то нужно сделать так, чтобы такого не было, а не продолжать дальше и удивляться
внутренняя форма некорректно (почемуто) работает внутри родительской формы.
Какой компонент? Что именно нужно сделать (только не надо: чтобы форма работала внутри формы)? Дайте больше конкретной информации, а не только кусок шаблона.
Записан
ghostcom
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 45



« Ответ #12 : 09.05.2016, 00:45:52 »

Т.к. я не силен в кодинге, меня легко ввести в заблуждение
Не совсем понял, что вы хотите и почему формы не работают.
RSForm их использует и я практикую там же.
Кем известно то? Smiley

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

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

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

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

Репутация: +344/-11
Offline Offline

Пол: Мужской
Сообщений: 3595


« Ответ #13 : 09.05.2016, 01:03:36 »

ОК, я уже понял, что задавать вопросы вы не умеете. Тогда ничем не могу помочь.
Единственное, что могу сказать: HTML не разрешает иметь форму внутри формы, если хотите одновременно отправить несколько форм - используйте JavaScript. Как конкретно - не могу сказать, пока не получу конкретный вопрос.
Записан
vipiusss
Профи
********

Репутация: +261/-8
Offline Offline

Пол: Мужской
Сообщений: 4573


Skype: renor_


« Ответ #14 : 09.05.2016, 01:08:14 »

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

Записан
ghostcom
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 45



« Ответ #15 : 09.05.2016, 06:32:53 »

Я уже не знаю куда конкретней задавать вопрос. Хотел побыстрому получить, ответ только время потерял За помощь спасибо! Буду капать в сторону JavaScript. Может позже соберусь, для конкретной задачи вопроса!
Записан
vipiusss
Профи
********

Репутация: +261/-8
Offline Offline

Пол: Мужской
Сообщений: 4573


Skype: renor_


« Ответ #16 : 09.05.2016, 08:49:32 »

Ну если Роберт не понимает, точнее нет конкретики(думал я такой одарённый), то уже не знаю...
Вы писали:

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

Это я уже додумываю что массив, вы уже сказали фореч и даю броские ответы надеясь попасть в нужное...и т.д. Это мы должны вытягивать из вас вопросы?
Записан
ghostcom
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 45



« Ответ #17 : 09.05.2016, 10:21:48 »

Вы что пьяный (извеняюсь)
Записан
vipiusss
Профи
********

Репутация: +261/-8
Offline Offline

Пол: Мужской
Сообщений: 4573


Skype: renor_


« Ответ #18 : 09.05.2016, 10:26:25 »

всё.я только щас, перечитв, понял.моя вина, приношу извинения, не внимателен был вчера, переработался и основываясь на вчерашнем, не читав, продолжил.
позже отпишу.
ещё раз приношу извинения.
« Последнее редактирование: 09.05.2016, 10:37:34 от vipiusss » Записан
ghostcom
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 45



« Ответ #19 : 09.05.2016, 10:44:36 »

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

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

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

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

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

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



Записан
ghostcom
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 45



« Ответ #20 : 09.05.2016, 10:45:29 »

всё.я только щас, перечитв, понял.моя вина, приношу извинения, не внимателен был вчера, переработался и основываясь на вчерашнем, не читав, продолжил.
позже отпишу.
ещё раз приношу извинения.

Да ладно бывает, я тоже извеняюсь
Записан
vipiusss
Профи
********

Репутация: +261/-8
Offline Offline

Пол: Мужской
Сообщений: 4573


Skype: renor_


« Ответ #21 : 09.05.2016, 10:51:07 »

а если при соблюдении условия  <?php if ($item->price_1 > 0): ?> div "бокс" вызвать инклуде (<?php include 'ФОРМА ВНУТРЕННЯЯ.php'; ?>) из левого файла, а тут перед <?php endif; ?> закончить дополнением-else вернуться к первой форме?
Записан
ghostcom
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 45



« Ответ #22 : 09.05.2016, 11:12:06 »

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

Записан
vipiusss
Профи
********

Репутация: +261/-8
Offline Offline

Пол: Мужской
Сообщений: 4573


Skype: renor_


« Ответ #23 : 09.05.2016, 11:17:40 »

а если дополнить:

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

это наподобие else вернёт вас на исполнителя: вн.форма.php
///
хотя нет, наверно форма в форме так тоже не сработает, хотя попробуйте.
« Последнее редактирование: 09.05.2016, 11:20:43 от vipiusss » Записан
ghostcom
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 45



« Ответ #24 : 09.05.2016, 11:23:56 »

ну да как то так надо делать. но я не знаю как это все прописать

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

Репутация: +261/-8
Offline Offline

Пол: Мужской
Сообщений: 4573


Skype: renor_


« Ответ #25 : 09.05.2016, 11:33:37 »

какая ссылка? оберните в <script></script> прямо в теле
вы попробуйте будет ли этот GET метод работать, потому что можно ещё рискнуть другим скриптом.
стояло бы это всё у меня-давно бы не гадали.
а так методом тыка.
ну или ждите знающих скрипт хорошо, в любом случае, вы ничего не теряете пробуя.
Записан
vipiusss
Профи
********

Репутация: +261/-8
Offline Offline

Пол: Мужской
Сообщений: 4573


Skype: renor_


« Ответ #26 : 09.05.2016, 11:48:00 »

Показать текстовый блок

и forma1.php:

Показать текстовый блок

попробуйте так как то...может что упустил.может и не верно, наугад, не пробуя.
Записан
ghostcom
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 45



« Ответ #27 : 09.05.2016, 12:37:13 »

Тоже самое.

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

Код
<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
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 45



« Ответ #28 : 09.05.2016, 14:19:50 »

тоже не получается страница перезагружается, товар не добавляется
Записан
robert
Профи
********

Репутация: +344/-11
Offline Offline

Пол: Мужской
Сообщений: 3595


« Ответ #29 : 09.05.2016, 14:27:13 »

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

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet