javascript для автоматического заполнения строк запроса в форме

#javascript #html #forms #query-string #auto-populate

Вопрос:

У меня очень мало опыта в программировании, но, как правило, я быстро учусь и изучаю все по частям, чтобы узнать, как создать несколько простых вещей, которые мне нужны для веб-страницы. Я хочу иметь возможность автоматически заполнять форму, используя строки запроса в моем URL-адресе (т. Е. Чтобы пример.com?цвет=синий автоматически загружал форму с опцией «синий», уже заполненной в разделе формы «цвет»). Вот часть моего html-кода, которая создает форму:

 lt;form id="wsite-com-product-options"gt;  lt;div class="wsite-com-product-option-groups"gt;   lt;div class="wsite-com-product-option wsite-com-product-option-dropdown" data-type="dropdown" data-option-name="Photo"gt;  lt;label class="wsite-com-product-label " for="wsite-com-product-option-Photo"gt;  lt;b class="wsite-com-product-title"gt;Photolt;/bgt;  lt;/labelgt;  lt;select id="wsite-com-product-option-Photo" class="wsite-field " name="Photo" gt;  lt;option selected="selected" value=""gt;--lt;/optiongt;  lt;option class="wsite-com-dropdown" value="Pelicans"gt;  Pelicans   lt;/optiongt;  lt;option class="wsite-com-dropdown" value="Dolphins"gt;  Dolphins  lt;/optiongt;  lt;option class="wsite-com-dropdown" value="Rams"gt;  Rams  lt;/optiongt;  lt;/selectgt;  lt;/divgt;  lt;/divgt; lt;/formgt; 

Поэтому я подумал, что если я введу URL-адрес для своего веб-сайта, а затем ?Фото=Пеликаны или ?Фото=Дельфины, эта форма будет автоматически заполнена ответом «Пеликаны» или «Дельфины» соответственно. Очевидно, что это не сработало, и теперь я понимаю, что мне нужен какой-то код javascript, чтобы строка запроса работала таким образом? Но я уже пару недель пытаюсь понять, как это сделать, изучая каждый соответствующий пример кода, который я мог найти, строка за строкой, чтобы попытаться понять, что они делали, и ничего из этого не сработало. Существует ли относительно простой код, который выполнял бы эту функцию, или я просто полностью не в себе, как новичок здесь?

Комментарии:

1. Вы имеете в виду, что хотите изменить атрибут формы href на основе вашего выпадающего списка? Я хотел бы знать, чего именно вы пытаетесь достичь с его помощью?

2. @groovy_guy Нет, я просто хочу, чтобы выбор был уже заполнен на основе параметров строки запроса. В принципе, я хочу иметь возможность предоставить кому-либо URL-адрес со строками запроса, чтобы нужный им параметр был уже выбран при открытии страницы, а не для того, чтобы им самим приходилось находить опцию в меню. (т. Е., если им нужна фотография пеликанов, я могу дать им URL-адрес mywebsite.com/Photo=Pelicans, что не только приведет их к mywebsite.com но также уже есть Пеликаны, заполненные в качестве ответа в выпадающем списке для формы фотографии, когда они открывают веб-сайт таким образом.)

Ответ №1:

Предполагая, что вы пытаетесь извлечь свой параметр из текущего URL-адреса, предоставленного вашим пользователям, и соответственно выбираете элемент.

Я написал для вас код javascript. проверьте, работает ли это. В случае, если вы хотите использовать текущее URL обновление URL в javascript с window.location.href .

 var url_string = "http://www.mywebsite.com?photo=Rams"; //window.location.href (set for current url) var url = new URL(url_string); var c = url.searchParams.get("photo"); document.querySelector('option[value="' c '"]').selected = true console.log(c); 
 lt;form id="wsite-com-product-options"gt;  lt;div class="wsite-com-product-option-groups"gt;   lt;div class="wsite-com-product-option wsite-com-product-option-dropdown" data-type="dropdown" data-option-name="Photo"gt;  lt;label class="wsite-com-product-label " for="wsite-com-product-option-Photo"gt;  lt;b class="wsite-com-product-title"gt;Photolt;/bgt;  lt;/labelgt;  lt;select id="wsite-com-product-option-Photo" class="wsite-field " name="Photo" gt;  lt;option selected="selected" value=""gt;--lt;/optiongt;  lt;option class="wsite-com-dropdown" value="Pelicans"gt;  Pelicans   lt;/optiongt;  lt;option class="wsite-com-dropdown" value="Dolphins"gt;  Dolphins  lt;/optiongt;  lt;option class="wsite-com-dropdown" value="Rams"gt;  Rams  lt;/optiongt;  lt;/selectgt;  lt;/divgt;  lt;/divgt; lt;/formgt;