Сохранение выбранного значения выпадающего списка в переменной в PHP [закрыто]
Я получил доступ к базе данных MySql, извлек значения из соответствующей таблицы и поместил их в выпадающий список, используя:
$material_query= "SELECT material FROM materials";
$material_query_run = mysql_query($material_query);
echo "<select>";
while ($material_query_array= mysql_fetch_array($material_query_run) ){
echo "<option value='' >".$material_query_array['material']."</option>";
}echo "</select>";
Как теперь хранить выбранное значение из выпадающего списка в переменной? Я думаю, что мне нужно использовать пост, однако, я не могу понять, как это сделать.
3 ответов:
Таким образом, элемент select должен находиться внутри формы, которую затем можно отправить, и данные, отправленные (по почте или получить), могут быть обработаны.
У вашего поля выбора должен быть атрибут name, чтобы его можно было идентифицировать. Также необходимо иметь значение в атрибуте value элементов option, так как это данные, которые отправляются.
Например, на Вашей странице (например, page.php) у вас будет ваш текущий код внутри тегов html-формы:
// The Form <form action="page.php" method="post"> <?php $material_query = "SELECT material FROM materials"; $material_query_run = mysql_query( $material_query ); echo "<select name='mySelect'>"; while ( $material_query_array = mysql_fetch_array( $material_query_run ) ) { echo "<option value='".$material_query_array['material']."' >".$material_query_array['material']."</option>"; } echo "</select>"; ?> <input type="submit" name="submit"/> </form> //Process the form //check if form is submitted if ( isset( $_POST['submit'] ) ) { //is submitted $variable = $_POST['mySelect']; //DO STUFF WITH DATA }Итак, здесь я сделал следующее: следующее:
- добавлены теги формы (см.: http://www.w3schools.com/php/php_forms.asp )
- добавлен атрибут name к тегам select
- добавлено то же значение, которое отображается в атрибуте value тега option
- добавлен код для обработки формы при ее отправке (см. ссылку выше еще раз)
Когда пользователь нажимает кнопку отправить, данные должны быть отправлены в ваш PHP-процессор, либо с помощью GET, либо POST. В вашем процессоре вы получите доступ к значениям полей SELECT, как и к любому другому элементу формы.
<form action="processor.php" method="POST"> // FORM ELEMENTS HERE <input type="submit" value="Go!"> </form>В вашем процессоре:
<?php $selectbox = $_POST['selectbox'];Теперь вы можете очистить и использовать переменную
$selectboxв своем скрипте или передать ее в базу данных.
Вам нужно что-то вроде:
<form action="post.php" method="post" name="select_form"> <?php $material_query="SELECT material FROM materials"; $material_query_run =mysql_query($material_query); echo "<select name=\"selectbox\">"; while ($material_query_array= mysql_fetch_array($material_query_run) ){ echo "<option value='".$material_query_array['material']."'>".$material_query_array['material']."</option>"; } echo "</select>"; ?> <input type="submit" value="Submit" name="submit"> </form>Затем в
post.php<?php if($_POST){ $select=$_POST['selectbox']; } ?>На боковой ноте используйте PDO (http://www.php.net/manual/en/book.pdo.php ) или MySQLI (http://uk3.php.net/manual/en/book.mysqli.php ), так как интерфейс MySql устарел.
Comments