多个输入字段,例如
<input type="text" name="row1[]" id="date1">
<input type="text" name="row1[]" id="amount1">
<input type="text" name="row1[]" id="name1">
<input type="text" name="row1[]" id="document1">
想要检查某些字段(不是所有字段)中的字符数是否至少为1(在示例中,不想检查id =&#34中的字符数; document1&# 34;现在使用此代码
if ( (strlen($_POST['row1'][0]) >= 1) or (strlen($_POST['row1'][1]) >= 1) or (strlen($_POST['row1'][2]) >= 1)) ) {
}
是否可以将代码缩短为(这不是正常工作的代码)?
if ( (strlen($_POST['row1']??want_to_check??) >= 1) ) {
}
并输入类似的东西(也不工作而不是真实的)
<input type="text" name="row1[]??want_to_check??" id="date1">
<input type="text" name="row1[]??want_to_check??" id="amount1">
<input type="text" name="row1[]??want_to_check??" id="name1">
<input type="text" name="row1[]??do_not_want_to_check??" id="document1">
仅检查某些字段(不是所有字段)中的字符数
答案 0 :(得分:1)
一个棘手的速记
if (count(array_filter($_POST['row1'],'trim')) != count($_POST['row1'])) {
//not all fields are set
}
但一般来说,如果你看到重复 - 你可以确定可以使用循环。看:
if ( (
strlen($_POST['row1'][0]) >= 1)
or (strlen($_POST['row1'][1]) >= 1)
or (strlen($_POST['row1'][2]) >= 1)) )
三个重复的操作员只有改变计数器。我相信你可以为此写一个循环。不是吗?
更新
制作合理的字段名称
<input type="text" name="row1[date]" id="date1">
<input type="text" name="row1[amount]" id="amount1">
<input type="text" name="row1[name]" id="name1">
<input type="text" name="row1[document]" id="document1">
创建一个包含必填字段名称的数组
$req = array('date1','amount1','name1');
答案 1 :(得分:0)
这样的事情可能会起作用
function checkLength($inputs) {
foreach($inputs as $input) {
if(strlen($input) < 1) return false;
}
return true;
}
if(checkLength(array($_POST['input1'], $_POST['input2'], $_POST['input3']))) {
}
答案 2 :(得分:-1)
您可以使用foreach
$field_set = false;
if(!empty($_POST['row1'])){
foreach($_POST['row1'] as $key => $row){
//Your code here
if(trim($_POST['row1']))
$field_set = true;
}
}
如果你有动态的字段数,这将有效。