Сохранение выбранного значения выпадающего списка в переменной в 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>";


Как теперь хранить выбранное значение из выпадающего списка в переменной? Я думаю, что мне нужно использовать пост, однако, я не могу понять, как это сделать.

1225   3  

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

    Ничего не найдено.