Використання $ _POST для отримання значення вибору параметра з HTML


128

Я використовую selectяк нижче:

<select name="taskOption">
    <option>First</option>
    <option>Second</option>
    <option>Third</option>
</select>

Як отримати значення з selectопції та зберегти його у змінну для подальшого використання у PHP?



2
Дивіться це . Надалі перед тим, як опублікувати, прошу швидкий пошук на SO.
kgdesouz

Відповіді:


203

Використовуйте цей спосіб:

$selectOption = $_POST['taskOption'];

Але завжди краще надавати значення вашим <option>тегам.

<select name="taskOption">
  <option value="1">First</option>
  <option value="2">Second</option>
  <option value="3">Third</option>
</select>

Чому завжди краще надавати значення <option>тегам? " Якщо атрибут значення не включений, значення за замовчуванням до тексту, що міститься всередині елемента ". Якщо це працює, що з цим погано?
осул

3
@osullic Згоден, але, мабуть, 5 років тому кілька браузерів цього не робили.
Praveen Kumar

28

Ви можете отримати доступ до значень у $_POSTмасиві за їх ключем. $ _POST - асоціативний масив, тому для доступу taskOptionви б використовували $_POST['taskOption'];.

Не забудьте перевірити, чи існує він у масиві $ _POST, перш ніж продовжувати.

<form method="post" action="process.php">
  <select name="taskOption">
    <option value="first">First</option>
    <option value="second">Second</option>
    <option value="third">Third</option>
  </select>
  <input type="submit" value="Submit the form"/>
</form>

process.php

<?php
   $option = isset($_POST['taskOption']) ? $_POST['taskOption'] : false;
   if ($option) {
      echo htmlentities($_POST['taskOption'], ENT_QUOTES, "UTF-8");
   } else {
     echo "task option is required";
     exit; 
   }

14

Ви також можете зробити це так:

<?php
if(isset($_POST['select1'])){
    $select1 = $_POST['select1'];
    switch ($select1) {
        case 'value1':
            echo 'this is value1<br/>';
            break;
        case 'value2':
            echo 'value2<br/>';
            break;
        default:
            # code...
            break;
    }
}
?>


<form action="" method="post">
    <select name="select1">
        <option value="value1">Value 1</option>
        <option value="value2">Value 2</option>
    </select>
    <input type="submit" name="submit" value="Go"/>
</form>

11
<select name="taskOption">
      <option value="first">First</option>
      <option value="second">Second</option>
      <option value="third">Third</option>
</select>

$var = $_POST['taskOption'];

3

Залежить від того, чи міститься форма, у якій вибрано, метод, встановлений на "отримати" або "опублікувати".

Якщо <form method="get">тоді значення select буде розташоване у над глобальному масиві $_GET['taskOption'].

Якщо <form method="post">тоді значення select буде розташоване у над глобальному масиві $_POST['taskOption'].

Щоб зберегти його у змінну, ви:

$option = $_POST['taskOption']

Хорошим місцем для отримання додаткової інформації буде посібник із PHP: http://php.net/manual/en/tutorial.forms.php


2

Подобається це:

<?php
  $option = $_POST['taskOption'];
?>

Індекс $_POSTмасиву завжди базується на значенні nameатрибута будь-якого введення HTML.


1
<select name="taskOption">
<option value="1">First</option>
<option value="2">Second</option>
<option value="3">Third</option>
</select>

спробуйте це

<?php 
if(isset($_POST['button_name'])){
$var = $_POST['taskOption']
if($var == "1"){
echo"your data here";
}
}?>

1


- html-файл -

<select name='city[]'> 
                <option name='Kabul' value="Kabul" > Kabul </option>
                <option name='Herat' value='Herat' selected="selected">             Herat </option>
                <option name='Mazar' value='Mazar'>Mazar </option>
</select>

- файл PHP -

$city = (isset($_POST['city']) ? $_POST['city']: null);
print("city is: ".$city[0]);
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.