просто так в хтмл две формы за один раз не отправишь, это тоже, что войти за один раз в две разные двери.
|
Lion777,
Нет, это я понимаю что не отправить 2 формы за один раз. Но я вроде и не хотел отправлять. Я просто хотел заменить в форме значения, а уже после отправить одну форму. Просто я думаю посетителям было бы удобнее использовать одну форму чем две. Частично те скрипты что я выше сам нашел и использовал работали и заменяли. Где еще были 2 кнопки... Конечно код этот не самый лучший и может там ошибки даже есть, никто ведь не говорит правильно ли... Но он заменял action. Я просто хотел изменять значения в зависимости от выбора select, вот и всё. И думаю тут можно обычным скриптом обойтись. без костылей и дополнительных модулей в самой cms. Так как большинство того что я исправлю после обновления слетит и это нельзя переопределить в шаблон cms. |
Почему я про две двери написал, потому что обработчики в разных категориях, папках, адресах у тебя. Атрибут action не для красоты, один ссылается на search, а второй на search-shop из разных категорий данные тянутся, сделай на сервере в одном файле и нет проблем.
--- Объясню популярней, колбаса в правой комнате, сыр в левой, а ты хочешь зайти за колбасой и там же взять сыр, но его там нету, он в другой комнате, ну или холодильнике, короче, по другому адресу. |
Lion777,
нее, обработчик это я указал так в меню. Просто на один адрес нельзя назначить 2 пункта меню. Ну а так да, в разных папках это всё лежит. У одой формы идет: /component/search/?search=текст У второй: /component/jshopping/search/result вообще без какого либо текста, то есть в url вводимый текст в поле не передается. Как по мне, проще заменить action путем несложной замены из select чем писать для этого дополнительный модуль. |
А чем плоха такая замена через select? Вроде меньше кода получается? И работает не хуже.
|
Lion777,
Вы думаете я хочу получить результат с двух форм сразу? я не пытаюсь взять и колбасу и сыр сразу. Я просто пытаюсь посетителю дать выбор, искать или там или там. Это было бы тоже самое что перед вами две двери в первую комнату и вторую, вам просто нужно выбрать куда идти. Вот и все. Если на страницы две формы с разными обработчиками это неудобно. А когда есть одна форма но с выбором куда идти, это удобнее. Просто ссылка на обработчик меняются в зависимости от выбора select. |
Я знаю что может так не правильно использовать, но это вроде работает.
Вот код который я сделал с заменой action и заменой name в input. Посмотрите как он работает через инспектор(если у вас firefox). Может подскажете как более правильно его написать. <script src="jquery.min.js"></script> <script type="text/javascript"> $(function() { $('#inselect').change(function(){ $('.in').hide(); $('#' + $(this).val()).show(); }); }); </script> <form action="" method="post"> <input id="rez" name="" type="text" placeholder="Поиск..." /> <Select id="inselect" onchange="document.getElementById('rez').name=value+''"> <option value="in2" disabled="" selected>Где искать?</option> <option value="searchword">Блог</option> <option value="search">Товары</option> </Select> <div id="in2" class="in" style="display:block"> <button>Найти</button> </div> <div id="searchword" class="in" style="display:none"> <input type="submit" value="Найти" onclick="this.form.action = '#1';" /> </div> <div id="search" class="in" style="display:none"> <input type="submit" value="Найти" onclick="this.form.action = '#2';" /> </div> <input name="setsearchdata" value="1" type="hidden"> </form> |
Это что то на подобии поиска, может видели в интернете на сайтах? Искать где: На сайте, в интернете(google, yandex).
Вот это примерно тоже самое. Только ищет оно на сайте в двух разных компонентах, не всё вместе, а только либо там, либо там. |
Цитата:
С этого надо было начинать тему, а не о двух формах. Если вы подмените action формы на эти адреса, то работать не будет по причине того, что разные методы запроса ожидает сценарий (если /component/jshopping/search/result это поиск). То есть наряду со сменой адреса, имени поля запроса, нужно еще менять и метод передачи формы. Вам Nexus показывал код который меняет и имя поля, добавьте в него еще и смену метода запроса и будет работать. А кнопки submit в скрытые элементы не прячьте, нужна всего одна и без обработчика. |
laimas,
Ну во первых и та и другая форма отправляет запрос методом post. Во вторых, я бы не спрашивал как заменить если бы это не работало. Я меняю action в форме и у меня ищет в блоге, меняю на другой и у меня так же нормально ищет в товарах. Мне не нужна смена метода запроса... Форма работает что я выше скинул код, только она с 3 кнопками, хотелось бы компактнее как то, но не знаю как это сделать. То что Nexus скинул код, он почему то не работает, там name не меняется, а вот action меняется |
Часовой пояс GMT +3, время: 04:45. |