如何获取所有选定选项的值

时间:2019-06-06 06:08:48

标签: php jquery html

我在数组中有一个日期列表,并添加了一个选项列。我想做的是获取每个数组的所有选定选项,然后单击“导出到excel”按钮将其插入数据库。

当我尝试打印所有选定的值时,只有第一个选定的值是显示的唯一值。

 for ($i=0; $i < count($dates); $i++) { 
     echo " 
              <tr>
                <td>$tripdate[$i]</td>
                <td contenteditable='true'></td>
                <td>$cicuitNumber[$i]</td>
                <td>$triptime[$i]</td>
                <td>$dates[$i]</td>
                <td>$dates1[$i]</td>
                <td>$dates2[$i]</td>
                <td contenteditable='true'> </td> 

    ////////////// OPTION#1 ///////////////////

              <td>           
                 <div class='form-group'>
                   <select class='form-control' id='InterruptionCause' name='InterruptionCause' >
                      <option value ='0' selected>0</option>
                      <option value='001'>001</option>
                      <option value='002'>002</option>
                      <option value='003'>003</option>
                      <option value='004'>004</option>
                   </select>
                </div>
              </td>


  ////////////// OPTION#2 ///////////////////

              <td>
                <div class='form-group'>
                   <select class='form-control' id='InterruptionWeather'>
                     <option value='101'>101</option>
                     <option value='102'>102</option>
                     <option value='103'>103</option>

                  </select>
                </div>
             </td>

   ///////////// OPTION#3 //////////////

             <td>
                <div class='form-group'>
                   <select class='form-control' id='InterruptionDevice'>
                     <option value='201'>201</option>
                     <option value='202'>202</option>
                     <option value='203'>203</option>
                    </select>
                </div>
            </td>


  ///////////// OPTION#4 /////////////

            <td>
               <div class='form-group'>
                   <select class='form-control' id='InterruptionEquipment'  >

                      <optionvalue='301'>301</option>
                      <option value='302'>302</option>
                      <option value='303'>303</option>
                      <option value='304'>304</option>
                       <option value='305'>305</option>
                    </select>
                </div>
            </td>                     
   </tr>
                        ";

                        }

我希望将其导出到数据库时,输出将获得所有数据,包括每个选定选项的值。

例如:

[05/31/2019,BT-F4,14:06:19,05/31/2019,14:09:33,00:03:14,001,103,203,304] < / strong>

[05/31/2019,CYNSF-F1,12:44:08,05/31/2019,14:46:18,02:02:10,003,102,201,302] < / strong>

这是我的布局:

Here's the layout

2 个答案:

答案 0 :(得分:0)

然后,在提交表单时,如果您要将信息发送到数据库,则必须捕获选择对象的选定值。您可以使用JQuery调用selects的选择器(我可以看到它的ID)并调用返回所选值的函数来完成此操作:

var selectedValue1 = $('#InterruptionCause').val();

您可以同时捕获所有选定的值,然后将其保存到数组中:

var arraySelectedValues = $('#InterruptionCause, #InterruptionWeather, #InterruptionDevice, #InterruptionEquipment').val();

为了从一种选择的所有列中获取所有选择的选项,您可以添加一个数字(即$i)以为每个选择对象具有单独的ID。我将通过选择之一来解释我的想法。目前,您正在回显所有选择,您在var $ i中拥有一个计数器。

 <td>           
     <div class='form-group'>
     <select class='form-control' id='InterruptionCause$i' name='InterruptionCause' >
             <option value ='0' selected>0</option>
             <option value='001'>001</option>
             <option value='002'>002</option>
             <option value='003'>003</option>
             <option value='004'>004</option>
     </select>
     </div>
 </td>

您可以看到,在id中,我添加了使每个选择的个体都具有的计数器的值。目前,您需要获取所有值,然后再次对表中的每一行进行迭代,并获取每个值,如下所示:

var listSelectedValues = [];
for(var i=0;i<table.length;i++){
    listSelectedValues.push($('#InterruptionCause'+i).val()); // push() adds an element at the end
}

答案 1 :(得分:0)

如果您通过使用数组语法添加名称来修改生成HTML的PHP​​,请删除如下所示的ID

for ($i=0; $i < count($dates); $i++) { 
     echo " 
              <tr>
                <td>$tripdate[$i]</td>
                <td contenteditable='true'>&nbsp;</td>
                <td>$cicuitNumber[$i]</td>
                <td>$triptime[$i]</td>
                <td>$dates[$i]</td>
                <td>$dates1[$i]</td>
                <td>$dates2[$i]</td>
                <td contenteditable='true'>&nbsp;</td>

              <td>           
                 <div class='form-group'>
                   <select class='form-control' name='InterruptionCause[]'>
                      <option value ='0' selected>0
                      <option value='001'>001
                      <option value='002'>002
                      <option value='003'>003
                      <option value='004'>004
                   </select>
                </div>
              </td>

              <td>
                <div class='form-group'>
                   <select class='form-control' name='InterruptionWeather[]'>
                     <option value='101'>101
                     <option value='102'>102
                     <option value='103'>103
                  </select>
                </div>
             </td>

             <td>
                <div class='form-group'>
                   <select class='form-control' name='InterruptionDevice[]'>
                     <option value='201'>201
                     <option value='202'>202
                     <option value='203'>203
                    </select>
                </div>
            </td>

            <td>
               <div class='form-group'>
                   <select class='form-control' name='InterruptionEquipment[]'>
                      <optionvalue='301'>301
                      <option value='302'>302
                      <option value='303'>303
                      <option value='304'>304
                       <option value='305'>305
                    </select>
                </div>
            </td>                     
   </tr>";

}

然后,您应该能够像这样访问POST数组中的每个项目:

<?php


    $weather=$_POST['InterruptionWeather'];
    $device=$_POST['InterruptionDevice'];
    $kit=$_POST['InterruptionEquipment'];


    foreach( $_POST['InterruptionCause'] as $i => $cause ){
        echo $weather[ $i ], $device[ $i ], $kit[ $i ], '<br />';
    }

?>