我需要检查是否设置了一些文本区域,但可能有很多。我想检查它们中的每一个是否都设置在带有 for 循环的 if 语句中。
if(//for loop here checking isset($_POST['item'.$i]) )
你可以这样做:
// 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
}
尝试使用这个:
$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
}
你可以试试:
<?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
}
我很惊讶在三个答案之后,没有一个正确的答案。它应该是:
$success = true;
for($i = 0; $i < 10; $i++)
{
if (!isset($_POST['item'.$i]))
{
$success = false;
break;
}
}
if ($success)
{
... do something ...
}
许多变化是可能的,但你真的可以在一个积极之后打破。
是的,在 if 条件中可能有一个循环。 您可以使用 for 循环,或者您可能会发现使用 foreach 循环更方便,如下所示:
<?php
if (isset($_POST) && $_POST != NULL ){
foreach ($_POST as $key => $value) {
// perform validation of each item
}
}
?>
if 条件基本上测试表单是否已提交。 它不会阻止提交空表单,这意味着必须检查任何必需的数据以验证用户是否提供了信息。 请注意,$key在循环迭代时带有每个字段的名称。