我有一个非常庞大的表单,我可以使用JavaScript 动态扩展。在这种形式下,我有不同的 DataSet,大约有50个字段来提交每个。当我提交表单时,我正在通过for循环从0到100 来检查哪些字段已设置。所以我像这样创建HTML:
<form id = "formUpdate" role="form" action="index.php?action=update" method="post">
<table id="table" class="table table-hover"><thead>
<tr>
<th> Head1
<th> Head2
<th> Head3
<th> Head4
<th> Head5
<th> Head6
<th> ...
<tbody>
<?php
for ($i=0;$i<$dataSets;$i++){ ?>
<tr>
<td style="text-align: center; vertical-align: middle;"><label><?php echo $test[$i]['1']; ?> </label></td>
<td style="text-align: center; vertical-align: middle;"> <input required class="form-control formsUser" form="formUpdate" name="fieldA<?php echo $test[$i]['2']; ?>" value=""></input>
<td style="text-align: center; vertical-align: middle;"> <textarea style="height:34px" class="form-control formsUser" form="formUpdate" name="fieldB<?php echo $test[$i]['3'];?>" required></textarea>
<td style="text-align: center; vertical-align: middle;"> <input class="form-control formsUser" form="formUpdate" name="fieldC<?php echo $test[$i]['4']; ?>" required value=""></input>
<td style="text-align: center; vertical-align: middle;"> <input class="form-control formsUser" form="formUpdate" name="fieldD<?php echo $test[$i]['5']; ?>" required value=""></input>
<td style="text-align: center; vertical-align: middle;"> <input class="form-control formsUser" form="formUpdate" name="fieldE<?php echo $test[$i]['6']; ?>" value=""></input>
</tr>
<?php } ?>
</table>
<button class="btn btn-success" form="formUpdate" type="submit"> Submit </button>
</form>
PHP:
public function update(){
print_r($_REQUEST);
for ($i=0;$i<100;$i++){
$string = "fieldA".$i;
if (isset($_POST[$string])){
// set the other _POSTS
}
else {
//do something different
}
}
}
但这仅适用于前10个数据集。当我调用print_r($_REQUEST);
时,它也只包含前10个数据集的字段内容。我读到了 php.ini 中max_input_vars
的限制并增加了这个值,但没有任何改变。此外,我的数据不应达到默认值1,000。我还尝试更改max_input_nesting_level
,memory_limit
和post_max_size
的值。
答案 0 :(得分:0)
OMG。遇到了问题。我正在使用DataTables,在提交表单时,表格被重新绘制,仅显示前10个数据集...对不起那些人并感谢您的帮助:))