Как опубликовать выборки в HTML List Box с несколькими выбранными значениями
У меня есть список в форме HTML с кнопкой Отправить. В списке есть возможность выбора нескольких объектов. Я могу выбрать несколько значений в списке, но я не знаю, как выяснить, какие значения были выбраны при отправке формы. Кроме того, я добавляю сгенерированные пользователем значения в список динамически, используя JavaScript, и я хотел бы иметь возможность сказать две вещи, когда форма отправляется:
- Какие параметры добавлены в поле пользователем?
- Какие значения выбраны в поле пользователем?
Это возможно? Благодарю.
2 ответа
Ниже вы найдете пример страницы.
Обратите внимание, что:
- элемент select (и любой элемент формы) нуждается в имени, которое будет включено в сообщение.
- будут опубликованы только выбранные опции в элементе select.
Какие значения выбраны в поле пользователем?
Когда пользователь отправляет форму, только выбранные значения будут отправлены на сервер. В зависимости от того, какой язык вы используете на сервере, существуют разные способы доступа к ним.
Какие параметры добавлены в поле пользователем?
Как было сказано ранее, вы видите только то, что было выбрано. Но как вы различаете ваши параметры и параметры пользователя? Это зависит от того, какие данные вы отправляете пользователю. Универсальный ответ - это то значение, которое вы получаете, но не отправили. Однако это может быть упрощено в зависимости от ваших данных. Поскольку параметры имеют как значение, так и текстовое свойство, можно использовать числовое значение для предварительно созданных значений. Таким образом, ваши значения будут числовыми в ответе, а пользовательские значения будут текстовой строкой. Этот подход предполагает, что ваш пользователь не будет вводить только числовое значение. Другой подход заключается в добавлении префикса ко всем сгенерированным пользователем значениям (помните, что у вас есть и значение, и текстовое поле для всех параметров)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test of select box</title>
<script type="text/javascript">
function addOpt(e) {
var o=document.createElement("option");
//o.value= -e.options.length;
o.text = "Test " + e.options.length;
o.selected=true;
e.add(o,null);
}
</script>
</head>
<body>
<form method="post" action="mypage.html">
<input type="button" onclick="addOpt(this.form.myselect)" value="Add option"/>
<br/>
<select id="myselect" name="mydata" multiple="multiple" size="10">
<option value="0">Test 0</option>
<option value="1">Test 1</option>
<option value="2">Test 2</option>
</select>
<br/>
<input type="submit"/>
</form>
</body>
</html>
Называя ваш select
с завершающими квадратными скобками PHP (и, вероятно, другие языки сервера) поместят данные в массив
например:
<form action="process.php" method="post">
<select name="multiSelects[]" multiple="multiple" size="5">
<option value="0">Zero</option>
<option value="1">One</option>
</select>
<input type="submit" />
</form>
Выбор будет доступен в массиве $_POST['multiSelects']