我在数组中有一个日期列表,并添加了一个选项列。我想做的是获取每个数组的所有选定选项,然后单击“导出到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>
这是我的布局:
答案 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'> </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>
<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 />';
}
?>