Php 使用foreach替换每个$u POST的isset
我一直在尝试使用foreach替换$u POST的每个isset 这是使用isset为每个$U POST生成的真实代码: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
<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";
}