Php 使用foreach替换每个$u POST的isset

Php 使用foreach替换每个$u POST的isset,php,Php,我一直在尝试使用foreach替换$u POST的每个isset 这是使用isset为每个$U POST生成的真实代码: <form method='post'> <input type='text' name='name'> <br> <input type='text' name='address'> <br> <input type='submit' name='send'> </f

我一直在尝试使用foreach替换$u POST的每个isset

这是使用isset为每个$U POST生成的真实代码:

<form method='post'>

    <input type='text' name='name'> <br>
    <input type='text' name='address'> <br>
    <input type='submit' name='send'> 

</form>

<?php

if (isset($_POST['name']) && isset($_POST['address']) && isset($_POST['send']))
{
   echo "All elements have been submitted";
}
   else
{
   echo "You forget some elements, try checking name or address";
}

?>

$\u POST将只包含传入的变量,并且可能不通过提交传入HTML元素。最好创建一个$required_fields数组,如果可以得到一些字段验证,甚至更好,但这不是您在这里要求的。您需要获取$的键和值

$required_fields = array("name" => FALSE, "alamat" => FALSE, "kirim" => FALSE);

foreach ($required_fields as $key => $value){
    if (isset($_POST[$key])){
        $required_fields[$key] = TRUE;
    }
}

foreach ($required_fields as $key => $value){
     if (!$required_fields[$key]){
         echo "Missing value for " . $key;
     }
}
如果您试图弄清楚传入的每个键是否都有一个值,那么类似的方法也会起作用

foreach ($_POST as $key => $value){
    if ($value == ""){
        echo "Value(s) are missing";
        break;
    }
}        

编辑:jbrahy刚刚打错了一个字。他的答案现在是好的

我认为朱布拉希的方法是正确的总体思路。。。但我认为它实际上不起作用

我会这么做的

    $requiredFields = ["nama","alamat","kirim"];

    $allElementsSet = true;
    foreach ($requiredFields as $requiredField)
    {
         if (!isset($_POST[$requiredField]))
         {
             $allElementsSet = false;
             break;
         }
    }
    if ($allElementsSet)
    {
        echo "All elements have been submitted";
    } else {
        echo "You forget some elements, try checking name or address";
    }

我刚有个主意。我可以用HTML5格式的必需属性完全替换isset吗?不管怎样,谢谢你。我正在使用您编写的代码,试图首先理解它:)当然,但最好使用jquery的attr。再问一个问题,我会发帖并举例说明。它实际上不属于这一行。我不理解if(isset($required_fields)){…在本例中,它将始终返回
true
,除非我遗漏了什么。谢谢Evan,你是对的。我混合了两个数组。现已修复。
foreach ($_POST as $key => $value){
    if ($value == ""){
        echo "Value(s) are missing";
        break;
    }
}        
    $requiredFields = ["nama","alamat","kirim"];

    $allElementsSet = true;
    foreach ($requiredFields as $requiredField)
    {
         if (!isset($_POST[$requiredField]))
         {
             $allElementsSet = false;
             break;
         }
    }
    if ($allElementsSet)
    {
        echo "All elements have been submitted";
    } else {
        echo "You forget some elements, try checking name or address";
    }