猿问

如何读取多个复选框(以及与之关联的数据)?

我有一个带有多个复选框的表单,每个复选框作为与其关联的输入字段,一旦您选中该复选框就会激活。


我的前端工作得很好,但我想知道如何在我的 PHP 中读取哪些复选框与其各自的输入字段一起被选中(有些除了输入字段外还有一个单选按钮)


这是我表单中每个单独的复选框的样子:


 <!-- Option1 -->

              <div class="form-row">

                <div class="form-group col-md-8">

                  <div class="form-check">

                    <input class="form-check-input showman" type="checkbox" onchange="showqt()" value="Button Chicken Amritsari" id="c1">

                    <label class="form-check-label" for="c1">

                      Button Chicken Amritsari<i><br>(Boneless) Serves 2<br>INR 290</i>

                    </label>

                  </div>

                </div>

                  <div class="form-group col-md-4" id="ifYes" style="display: none; float:right;">

                    <!-- <label for="qtcounter">Quantity:</label> -->

                    <div class="input-group" id="qtcounter">

                      <input type="button" value="-" class="button-minus" data-field="quantity">

                      <input type="number" step="1" max="" value="1" name="quantity" class="quantity-field">

                      <input type="button" value="+" class="button-plus" data-field="quantity">

                    </div>

                  </div>

              </div>

              <!-- Option 1 ends -->

我还没有完全了解 PHP,但之前为了读取多个复选框,我将它们全部放在字段中的一个数组中,name然后在 PHP 中读取该数组。但是,这并没有增加每个具有输入字段的复选框的复杂性。


有谁知道如何做到这一点?


蝴蝶不菲
浏览 156回答 1
1回答

小唯快跑啊

您希望对输入和复选框都使用关联数组。<!-- Option1 --><div class="form-row">&nbsp; <div class="form-group col-md-8">&nbsp; &nbsp; <div class="form-check">&nbsp; &nbsp; &nbsp; <input class="form-check-input showman" type="checkbox" name="items[1][chosen]" onchange="showqt()" value="Button Chicken Amritsari" id="c1">&nbsp; &nbsp; &nbsp; <label class="form-check-label" for="c1">&nbsp; &nbsp; &nbsp; &nbsp; Button Chicken Amritsari<i><br>(Boneless) Serves 2<br>INR 290</i>&nbsp; &nbsp; &nbsp; </label>&nbsp; &nbsp; </div>&nbsp; </div>&nbsp; &nbsp; <div class="form-group col-md-4" id="ifYes" style="display: none; float:right;">&nbsp; &nbsp; &nbsp; <!-- <label for="qtcounter">Quantity:</label> -->&nbsp; &nbsp; &nbsp; <div class="input-group" id="qtcounter">&nbsp; &nbsp; &nbsp; &nbsp; <input type="button" value="-" class="button-minus" data-field="items[1][quantity]">&nbsp; &nbsp; &nbsp; &nbsp; <input type="number" step="1" max="" value="1" name="items[1][quantity]" class="quantity-field">&nbsp; &nbsp; &nbsp; &nbsp; <input type="button" value="+" class="button-plus" data-field="items[1][quantity]">&nbsp; &nbsp; &nbsp; </div>&nbsp; &nbsp; </div></div><!-- Option 1 ends -->对于选项 2,请使用items[2][chosen]anditems[2][quantity]等。注意必须指定索引,不能使用[]. 否则, 的索引quantity将与所选项目不匹配。在 php 中,您可以遍历项目并忽略未选择的项目。foreach ($_POST['items'] as $item) {&nbsp; &nbsp; if (!isset($item['chosen'])) continue; // Skip items that aren't chosen.&nbsp; &nbsp; echo $item['quantity'] . ' ' . $item['chosen'] . "\n";&nbsp;}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答