При клике по ссылке - переход на форму с выбранным значением select

Webliberty
На сайте с 30.10.2010
Offline
130
2756

Есть форма с выпадающим списком <select>. На страницах сайта в определенных местах размещены ссылки с призывом к действию. Как сделать так, чтобы при переходе по ссылке открывалась страница с формой и в поле <select> было выбрано одно из нужных значений?

https://webliberty.ru | Подпись заверена нотариусом ©️
bukachuk
На сайте с 07.09.2008
Offline
97
#1

Можно передать значение методом GET, а потом подхватить в select и поставить нужному значению selected

Совсем грубый пример. Типа ссылка:

<a href="/select.php?select=1">Действие</a>

Страница с select:


<?php
$select = (int)$_GET['select'];
?>
<select name="select">
<option value="1"<?php if($select == 1): ?> selected<? endif ?>>1</option>
<option value="2"<?php if($select == 2): ?> selected<? endif ?>>2</option>
<option value="3"<?php if($select == 3): ?> selected<? endif ?>>3</option>
</select>
Программирование PHP,Mysql (/ru/forum/934470)
Satisfaction
На сайте с 10.05.2012
Offline
33
#2

bukachuk, только лучше начинать отсчет с 0. Тогда при передаче неверного значения в $_GET['select'], (int) $_GET['select'] будет равен 0. То-есть, значения по-умолчанию.

if($select == 1), а лучше if($select === 1). Работает быстрее.

LEOnidUKG
На сайте с 25.11.2006
Online
1725
#3
а лучше if($select === 1). Работает быстрее.

На 0,000000000000000000001 секунду быстрее или как тестировалось? :D

Просто читать про быстрее в таких скриптах смешно :)

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
Satisfaction
На сайте с 10.05.2012
Offline
33
#4
LEOnidUKG:
На 0,000000000000000000001 секунду быстрее или как тестировалось?

Строгое сравнение считается более безопасным, а сам алгоритм менее ресурсоемким. Использовать его по-умолчанию, наверное, является хорошей привычкой.

R
На сайте с 20.02.2015
Offline
59
#5

В принципе можно средствами javascript выполнить на стороне клиента.

Передавать значение в якоре УРЛ и скриптом получать значение нужного селекта.

Один из вариантов:


<html>
<head>
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<select id="select">
<option value="">default</option>
<option value="name1">name1</option>
<option value="name2">name2</option>
<option value="name3">name3</option>
</select>
<script type="text/javascript">
// вырианты:
// http://localhost/index.php#name1 http://localhost/index.php#name2 http://localhost/index.php#name3
$(document).ready(function() {
var url = window.location.href;
var match = url.match(new RegExp("^[^\\s]+#([^\\s]+)$"));
if (match != null) {
$("#select [value='" + match[1] + "']").attr("selected", "selected");
}
});
</script>
</body>
</html>
Webliberty
На сайте с 30.10.2010
Offline
130
#6

Всем спасибо, на данный момент воспользовался вторым предложенным вариантом от rereg, работает как и требовалось.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий