【问题标题】:Using $_POST to get select option value from HTML使用 $_POST 从 HTML 中获取选择选项值
【发布时间】:2013-06-12 22:24:23
【问题描述】:

我使用select如下:

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

如何在 PHP 中从 select 选项中获取值并将其存储到变量中以供将来使用?

【问题讨论】:

    标签: php html arrays


    【解决方案1】:

    这样使用:

    $selectOption = $_POST['taskOption'];
    

    但最好为&lt;option&gt; 标签赋值。

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

    【讨论】:

    • 为什么给&lt;option&gt;标签赋值总是更好? “If no value attribute is included, the value defaults to the text contained inside the element”。如果有效,那有什么问题?
    • @osullic 同意,但我想 5 年前,一些浏览器还没有这样做。
    • 我应该把 $selectOption = $_POST['taskOption'];我把它放在php中但它什么也没做......
    • @YunfeiChen 你得把它放在表单指向的页面上。
    • 但现在我只得到值 (1,2,3) 而不是文本 (First, Second, Third)。如果我两者都想要怎么办?
    【解决方案2】:

    您可以通过键访问$_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; 
       }
    

    【讨论】:

      【解决方案3】:

      你也可以这样做:

      <?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>
      

      【讨论】:

        【解决方案4】:
        <select name="taskOption">
              <option value="first">First</option>
              <option value="second">Second</option>
              <option value="third">Third</option>
        </select>
        
        $var = $_POST['taskOption'];
        

        【讨论】:

          【解决方案5】:

          取决于包含选择的表单是否将方法设置为“get”或“post”。

          如果&lt;form method="get"&gt;,那么select的值将位于超级全局数组$_GET['taskOption']中。

          如果&lt;form method="post"&gt;,那么select的值将位于超级全局数组$_POST['taskOption']中。

          要将其存储到变量中,您可以:

          $option = $_POST['taskOption']
          

          了解更多信息的好地方是 PHP 手册:http://php.net/manual/en/tutorial.forms.php

          【讨论】:

            【解决方案6】:

            像这样:

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

            $_POST 数组的索引始终基于任何 HTML 输入的 name 属性的值。

            【讨论】:

              【解决方案7】:
              <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";
              }
              }?>
              

              【讨论】:

                【解决方案8】:


                -- 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]);
                

                【讨论】:

                  猜你喜欢
                  • 2021-11-26
                  • 2022-07-16
                  • 2012-10-18
                  • 2016-08-12
                  • 1970-01-01
                  • 2016-07-28
                  • 2014-02-13
                  • 1970-01-01
                  相关资源
                  最近更新 更多