$ _POST를 사용하여 HTML에서 선택 옵션 값 가져 오기


128

나는 select아래와 같이 사용 한다 :

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

selectPHP에서 옵션 에서 값을 가져 와서 나중에 사용할 수 있도록 변수에 저장 하는 방법은 무엇입니까?



2
참조 . 나중에 게시하기 전에 SO를 빠르게 검색하십시오.
kgdesouz 2012 년

답변:


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>태그에 가치를 부여하는 것이 더 좋은 가요? " value 속성이 포함되지 않은 경우 기본값은 " 요소 안에 포함 된 텍스트 입니다. 그것이 효과가 있다면, 그게 무슨 문제입니까?
osullic

3
@osullic 동의하지만 5 년 전에는 일부 브라우저가 그렇게하지 않았다고 생각합니다.
Praveen Kumar Purushothaman 2016 년

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

선택이 포함 된 양식에 "get"또는 "post"로 설정된 메소드가 있는지에 따라 다릅니다.

그렇다면 <form method="get">select의 값은 super 전역 배열에 위치 $_GET['taskOption']합니다.

그렇다면 <form method="post">select의 값은 super 전역 배열에 위치 $_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]);
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.