Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 18.11.2017, 01:28
Кандидат Javascript-наук
Отправить личное сообщение для Lion777 Посмотреть профиль Найти все сообщения от Lion777
 
Регистрация: 04.11.2017
Сообщений: 117

просто так в хтмл две формы за один раз не отправишь, это тоже, что войти за один раз в две разные двери.
Ответить с цитированием
  #32 (permalink)  
Старый 18.11.2017, 01:51
Интересующийся
Отправить личное сообщение для ivan899 Посмотреть профиль Найти все сообщения от ivan899
 
Регистрация: 16.11.2017
Сообщений: 24

Lion777,
Нет, это я понимаю что не отправить 2 формы за один раз. Но я вроде и не хотел отправлять.
Я просто хотел заменить в форме значения, а уже после отправить одну форму. Просто я думаю посетителям было бы удобнее использовать одну форму чем две.
Частично те скрипты что я выше сам нашел и использовал работали и заменяли. Где еще были 2 кнопки...
Конечно код этот не самый лучший и может там ошибки даже есть, никто ведь не говорит правильно ли...
Но он заменял action.

Я просто хотел изменять значения в зависимости от выбора select, вот и всё. И думаю тут можно обычным скриптом обойтись. без костылей и дополнительных модулей в самой cms. Так как большинство того что я исправлю после обновления слетит и это нельзя переопределить в шаблон cms.

Последний раз редактировалось ivan899, 18.11.2017 в 02:00.
Ответить с цитированием
  #33 (permalink)  
Старый 18.11.2017, 01:59
Кандидат Javascript-наук
Отправить личное сообщение для Lion777 Посмотреть профиль Найти все сообщения от Lion777
 
Регистрация: 04.11.2017
Сообщений: 117

Почему я про две двери написал, потому что обработчики в разных категориях, папках, адресах у тебя. Атрибут action не для красоты, один ссылается на search, а второй на search-shop из разных категорий данные тянутся, сделай на сервере в одном файле и нет проблем.
---
Объясню популярней, колбаса в правой комнате, сыр в левой, а ты хочешь зайти за колбасой и там же взять сыр, но его там нету, он в другой комнате, ну или холодильнике, короче, по другому адресу.

Последний раз редактировалось Lion777, 18.11.2017 в 02:05.
Ответить с цитированием
  #34 (permalink)  
Старый 18.11.2017, 02:10
Интересующийся
Отправить личное сообщение для ivan899 Посмотреть профиль Найти все сообщения от ivan899
 
Регистрация: 16.11.2017
Сообщений: 24

Lion777,
нее, обработчик это я указал так в меню. Просто на один адрес нельзя назначить 2 пункта меню. Ну а так да, в разных папках это всё лежит.
У одой формы идет:
/component/search/?search=текст
У второй:
/component/jshopping/search/result вообще без какого либо текста, то есть в url вводимый текст в поле не передается.

Как по мне, проще заменить action путем несложной замены из select чем писать для этого дополнительный модуль.
Ответить с цитированием
  #35 (permalink)  
Старый 18.11.2017, 02:17
Интересующийся
Отправить личное сообщение для ivan899 Посмотреть профиль Найти все сообщения от ivan899
 
Регистрация: 16.11.2017
Сообщений: 24

А чем плоха такая замена через select? Вроде меньше кода получается? И работает не хуже.
Ответить с цитированием
  #36 (permalink)  
Старый 18.11.2017, 02:25
Интересующийся
Отправить личное сообщение для ivan899 Посмотреть профиль Найти все сообщения от ivan899
 
Регистрация: 16.11.2017
Сообщений: 24

Lion777,
Вы думаете я хочу получить результат с двух форм сразу?
я не пытаюсь взять и колбасу и сыр сразу.
Я просто пытаюсь посетителю дать выбор, искать или там или там.
Это было бы тоже самое что перед вами две двери в первую комнату и вторую, вам просто нужно выбрать куда идти. Вот и все.
Если на страницы две формы с разными обработчиками это неудобно.
А когда есть одна форма но с выбором куда идти, это удобнее.
Просто ссылка на обработчик меняются в зависимости от выбора select.

Последний раз редактировалось ivan899, 18.11.2017 в 02:30.
Ответить с цитированием
  #37 (permalink)  
Старый 18.11.2017, 02:33
Интересующийся
Отправить личное сообщение для ivan899 Посмотреть профиль Найти все сообщения от ivan899
 
Регистрация: 16.11.2017
Сообщений: 24

Я знаю что может так не правильно использовать, но это вроде работает.
Вот код который я сделал с заменой 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>

Последний раз редактировалось ivan899, 18.11.2017 в 02:36.
Ответить с цитированием
  #38 (permalink)  
Старый 18.11.2017, 02:43
Интересующийся
Отправить личное сообщение для ivan899 Посмотреть профиль Найти все сообщения от ivan899
 
Регистрация: 16.11.2017
Сообщений: 24

Это что то на подобии поиска, может видели в интернете на сайтах? Искать где: На сайте, в интернете(google, yandex).
Вот это примерно тоже самое. Только ищет оно на сайте в двух разных компонентах, не всё вместе, а только либо там, либо там.
Ответить с цитированием
  #39 (permalink)  
Старый 18.11.2017, 03:22
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от ivan899
У одой формы идет:
/component/search/?search=текст
У второй:
/component/jshopping/search/result вообще без какого либо текста
Без текста сервер просто ничего не найдет. Первый это поиск, как и должен быть, то есть GET запрос, второе не известно что, но передаваемое методом POST, а не потому, что без какого либо текста.

С этого надо было начинать тему, а не о двух формах. Если вы подмените action формы на эти адреса, то работать не будет по причине того, что разные методы запроса ожидает сценарий (если /component/jshopping/search/result это поиск). То есть наряду со сменой адреса, имени поля запроса, нужно еще менять и метод передачи формы. Вам Nexus показывал код который меняет и имя поля, добавьте в него еще и смену метода запроса и будет работать. А кнопки submit в скрытые элементы не прячьте, нужна всего одна и без обработчика.

Последний раз редактировалось laimas, 18.11.2017 в 03:52.
Ответить с цитированием
  #40 (permalink)  
Старый 18.11.2017, 04:23
Интересующийся
Отправить личное сообщение для ivan899 Посмотреть профиль Найти все сообщения от ivan899
 
Регистрация: 16.11.2017
Сообщений: 24

laimas,
Ну во первых и та и другая форма отправляет запрос методом post.
Во вторых, я бы не спрашивал как заменить если бы это не работало.
Я меняю action в форме и у меня ищет в блоге, меняю на другой и у меня так же нормально ищет в товарах.

Мне не нужна смена метода запроса...
Форма работает что я выше скинул код, только она с 3 кнопками, хотелось бы компактнее как то, но не знаю как это сделать.

То что Nexus скинул код, он почему то не работает, там name не меняется, а вот action меняется

Последний раз редактировалось ivan899, 18.11.2017 в 04:26.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объединение двух onclick функций Nezumi.May Общие вопросы Javascript 9 28.08.2017 13:54
Объединение двух запросов MySQL Как? zawm Серверные языки и технологии 2 28.04.2017 22:01
Откат изменений + объединение двух функций emptyindorill jQuery 8 17.02.2017 08:52
Не работает аякс в jQuery Form Ticksy jQuery 4 19.07.2011 12:55
Объединение двух событий ASerputko Общие вопросы Javascript 7 12.01.2011 15:32