|
|
|
| Здравствуйте!
Помогите пожалуйста, кто сталкивался с подобной задачей.
Есть HTML форма, в которой предусмотрен выбор из списка одновременно нескольких стран при нажатии клавиши "Ctrl".
<form method="post" action="script.php">
(Hold down the "Ctrl" key as you click to select multiple options) <br>
<select multiple name="country" size="6">
<option value="lv">Lithuania
<option value="lt">Latvia
<option value="ee">Estonia
<option value="fn"> Finland
<option value="se"> Sweden
<option value="others"> Other
</select>
</form>
Есть обработчик PHP script.php
<?php
$country = $_POST["country"];
echo " country:" , $country;
?>
В таком виде он естесственно выводит только одну страну, даже если были выбраны несколько, т.к. в переменную передалось только одно значение. А как сделать, чтобы передавалось и выводилось сразу несколько значений?
Заранее спасибо,
.Danga | |
|
|
|
|
|
|
|
для: danga
(27.09.2013 в 21:00)
| |
<select multiple name="country[]" size="6">
|
И для просмотра элементов массива - print_r($country), а вывод на экран это уже либо цикл, либо преобразование массива в строку.
А echo " country:" , $country; выдаст Array. | |
|
|
|
|
|
|
|
для: danga
(27.09.2013 в 21:00)
| | Вот так подойдет:
<form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
(Hold down the "Ctrl" key as you click to select multiple options) <br>
<select multiple name="country[]" size="6">
<option value="lv">Lithuania
<option value="lt">Latvia
<option value="ee">Estonia
<option value="fn"> Finland
<option value="se"> Sweden
<option value="others"> Other
</select>
<input type="submit" value="Отправить" name="send">
</form>
<?php
$country = $_POST["country"];
foreach ($country as $value)
{
echo "country: ".$value."<br>";
}
?>
|
| |
|
|
|
|
|
|
|
для: magic
(28.09.2013 в 00:31)
| | Спасибо большое!
Да, так получается вывести все выбраенные страны.
Но честно говоря, задача стоит шире. Это только кусок большой формы, которую заполняет пользователь при регистрации. Введенная информация обрабатывается скриптом Script.pнр, где я проверяю корректность ввода ( в том числе в целях безопасности). Дальше идет обработка средсвами SQL. Задумано, чтобы пользователи могли выбирать инфу по критериям из базы.
Так я бытаюсь усовершенствавать свой статический HTML сайт, который уже довольно успешный. Это мой первый опыт в подобных преобразованиях.
Со скриптом Script.php все понятно. Но мне не нравится, что по оператору echo сообщение об ошибках вводимой пользоватем регистрационной инфе выводится на новую станицу в браузере. Не знаю как сделать, чтобы это сообщение публиковалось на той же станице, где форма регистрации. Помогите пожалуйста...
Danga | |
|
|
|
|
|
|
|
для: danga
(28.09.2013 в 23:59)
| | Прием и обработка данных формы, включая и набор данных из списка, это одно. А возврат об ошибках это другое.
Если проблема с приемом данных решена, то чтобы сделать прием данных и возврат возможных ошибок при их приеме, диалогом не перегружающим текущую страницу, для этого нужно использовать Ajaxj - технология, которая включает и клиентские скрипты JS, и специальный объект, который для этого использует браузер.
Пройдите в этот раздел, посмотрите вопросы об Ajax. Почитайте в сети об этом. | |
|
|
|