PHP表单 - 发送选定的信息

时间:2015-02-10 09:17:50

标签: php html forms

我想要一些PHP表单的帮助。我的表单上的用户可以选择多个产品和每个产品的数量 - 我想知道,我怎么能这样做,以便在发送表单时我可以看到用户选择的产品和每个产品的数量邮件?

产品清单位于

  • ,金额是选择下拉列表。

     <ul class="list-group checked-list-box">
      <div class="col-xs-6">
        <li class="list-group-item" data-style="button">Product 1</li>
      </div>
      <div class="col-xs-6">
        <select class="form-control">
          <option value="0">0</option>
          <option value="1">1</option>
          <option value="2">2</option>
          <option value="3">3</option>
          <option value="4">4</option>
          <option value="5">5</option>
          <option value="6">6</option>
          <option value="7">7</option>
          <option value="8">8</option>
          <option value="9">9</option>
          <option value="10">10</option>
        </select>
      </div>
    </ul>
    
    <ul class="list-group checked-list-box">
          <div class="col-xs-6">
            <li class="list-group-item" data-style="button">Product 2</li>
          </div>
          <div class="col-xs-6">
            <select class="form-control">
              <option value="0">0</option>
              <option value="1">1</option>
              <option value="2">2</option>
              <option value="3">3</option>
              <option value="4">4</option>
              <option value="5">5</option>
              <option value="6">6</option>
              <option value="7">7</option>
              <option value="8">8</option>
              <option value="9">9</option>
              <option value="10">10</option>
            </select>
          </div>
        </ul>
    

    感谢您的回答。

  • 2 个答案:

    答案 0 :(得分:4)

    name="amount[]"添加到/ all选择

    <select class="form-control" name="amount[PRODUCT_ID_GOES_THERE]">
    <!-- eg. <select class="form-control" name="amount[<?php echo $product_id ?>]"> -->
    

    然后你将获得他们的价值:

    $_POST['amount'][24] // amount of product with ID=24
    $_POST['amount'][2]  // amount of product with ID=2
    

    答案 1 :(得分:0)

    我真的希望您不是通过为每种产品反复添加相同的代码来构建产品列表。

    有一种名为DRY的代码方法,这意味着不要重复自己。当您决定对代码进行更改并需要多次重复更改时,您将获益。

    您的代码可能如下所示:

    $my_products = array(
        '343' => 'Product 1',
        '4' => 'Product 2'
        ); // these values could be stored and retrieved from database
    
    foreach ( $my_products as $key => $value ) {
        echo "<ul class=\"list-group checked-list-box\">";
          echo "<div class=\"col-xs-6\">";
            echo "<li class=\"list-group-item\" data-style=\"button\">$value</li>";
          echo "</div>";
          echo "<div class=\"col-xs-6\">";
            echo "<select class=\"form-control\" name=\"quantity[$key]>\"";
              for ( $i = 0; $i <= 10; $i++) echo "<option value=\"$i\">$i</option>";
            echo "</select>";
          echo "</div>";
        echo "</ul>";
    }
    

    现在,如果您想添加产品,您只需要为$my_products数组添加ID和名称即可。如果要更改代码,只需在一个位置进行更改即可。