我需要检查是否设置了一些文本区域,但可能会有很多区域。我想检查它们中的每一个是否都设置在带有for循环的if语句中。
if(//for loop here checking isset($_POST['item'.$i]) )
答案 0 :(得分:0)
你可以这样做:
// Assume all set
$allSet = true;
// Check however many you need
for($i=0;$i<10;$i++) {
if (!isset($_POST['item'.$i])) {
$allSet=false; // If anything is not set, flag it and bail out.
break;
}
}
if ($allSet) {
//do stuff
} else {
// do other stuff
}
如果您只有少数几个,或者它们不是顺序的,则不需要循环。你可以这样做:
if (isset($_POST['a'], $_POST['d'], $_POST['k']....)) {
// do stuff if everything is set
} else {
// do stuff if anything is not set
}
答案 1 :(得分:0)
尝试使用:
$post=$_POST;
foreach($post as $key=>$value){
if (isset($value) && $value !="") {
// do stuff if everything is set
} else {
// do stuff if anything is not set
}
答案 2 :(得分:0)
您可以尝试:
<?php
$isset = true;
$itemCount = 10;
for($i = 0; $i < $itemCount && $isset; $i++){
$isset = isset($_POST['item'.$i]);
}
if ($isset){
//All the items are set
} else {
//Some items are not set
}
答案 3 :(得分:0)
我很惊讶,经过三次回答,没有一个正确的答案。它应该是:
$success = true;
for($i = 0; $i < 10; $i++)
{
if (!isset($_POST['item'.$i]))
{
$success = false;
break;
}
}
if ($success)
{
... do something ...
}
许多变化都是可能的,但是你可以在一次积极的情况下真正打破。
答案 4 :(得分:0)
是的,一个if-condtional中可能有一个循环。您可以使用for循环,或者您可能会发现使用foreach循环更方便,如下所示:
<?php
if (isset($_POST) && $_POST != NULL ){
foreach ($_POST as $key => $value) {
// perform validation of each item
}
}
?>
if条件基本上测试表单是否已提交。它不会阻止提交空表单,这意味着必须检查所有必需的数据以验证用户是否提供了信息。请注意,$ key在循环迭代时带有每个字段的名称。