Предварительно заполненные HTML-формы ОТ кнопок - PullRequest
0 голосов
/ 01 мая 2011

Надеюсь, на этот вопрос найдется очевидный ответ всем, кто разбирается в JS и HTML:)

У меня очень специфическая проблема.Я пытаюсь добавить в заголовок сайта кнопки, которые будут функционировать как «быстрый поиск», который в основном при нажатии отправляет предварительно заполненные значения формы на мою страницу поиска, и страница поиска также заполняет эти значения в форме ajax внутри.

Вот пример страницы поиска, которая находится за пределами страницы результатов: http://www.thediamondsexperts.com/index.php?route=product/diamondsearch/jewelry

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

Я просто хочу создать различные варианты для предварительно заданных поисков и поместить их в виде кнопок в заголовке.

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

Например, скопируйтетекущая функция, которая принимает поиск, имеет ее с предварительно установленными значениями вместо заполнения значений из формы, а затем просто вызывает еефункция onClick.Имеет ли это смысл?

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

Вашпомощь очень ценится!

Ответы [ 2 ]

0 голосов
/ 01 мая 2011

Если вы хотите передавать значения с одной страницы на другую и обрабатывать ее на стороне клиента, используйте «get» для метода отправки формы и используйте удобную функцию «gup ()» для получения значений параметров. Вы можете получить больше информации о gup () здесь :

function gup( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}

На вашей начальной странице вы можете либо использовать входные данные с type = "hidden", либо просто получить значения из видимых входных данных (как на вашей пробной странице). Затем отправьте на страницу результатов. Учитывая начальную страницу с чем-то вроде этого ...

<form method="get" action="results.html">
  <input type="text" name="caratFrom" value="0.7" />
  <input type="submit"/>
</form>

... вот пример использования страницы результатов:

var caratFrom = gup('caratFrom');
// etc.

Затем просто присвойте эти значения любым элементам, которые вы хотите, например, вход:

<!-- HTML -->
  <input type="text" name="caratFromResult" value="" />

// Javascript
  document.getElementById('caratFromResult').value = caratFrom;
0 голосов
/ 01 мая 2011

Все, что вам нужно, это форма со скрытыми вводами и кнопкой отправки:

<form>
<input type="hidden" name="param1" value="Predefined value 1" />
<input type="hidden" name="param2" value="Predefined value 2" />
<input type="hidden" name="param3" value="Predefined value 3" />
<button type="submit">Search!</button>
</form>

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

... должен быть простой способ сделать это сторона сервера

... клиентское решение было бы лучше

... скопировать текущую функцию, которая принимает поиск, иметь его с предустановленным значения вместо заполнения значения из формы, а затем просто вызывая эту функцию onClick. Есть ли что имеет смысл?

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

Когда вы говорите «несколько значений форм с одинаковыми идентификаторами», я боюсь, что вы можете быть сбиты с толку: для ввода формы не требуется «id», я думаю, что вы имеете в виду «name», и в этом нет необходимости иметь несколько входов с одним и тем же именем в форме, если вы не хотите отправить массив значений .

Я не хотел идти за борт и говорить о том, как работает ajax на этом сайте, потому что это совсем другое дело, и все, что вас беспокоило, это предустановленные кнопки поиска. Надеюсь, это поможет вам разобраться, GL.

РЕДАКТИРОВАТЬ : Мне трудно разобраться, что вы на самом деле спрашиваете, если вы пытаетесь продублировать поведение на этом сайте, пожалуйста, сообщите нам, какой язык на стороне сервера вам доступен. , если вы используете или открыты для использования любых библиотек JavaScript, и то, что вы пытались до сих пор. Полноценное учебное пособие по кормлению ложкой действительно выходит за рамки, вы получите лучшую, более ясную помощь, если поделитесь кодом из своих текущих попыток.

...