如果$_POST为空,则在foreach循环中赋值


if empty $_POST assign value in foreach loop

Hi想要建立一个创建调查的程序。我不知道如何为一个没有答案的问题赋值。谢谢你的帮助。

$dizi = array();
foreach ( $_POST as $key => $value){
    if(empty($_POST)){
        $_POST="bos"; 
    }
    $dizi[$key] = "'".$value."'"; 
} 

您的代码没有意义,请尝试以下操作:

$dizi = array();
foreach($_POST as $key => $value) {
    if (empty($value)) {
        $value = 'your value';
    }
    $dizi[$key] = $value;
}
$_POST是一个关联数组所以你可以用访问它
$bla = $_POST['bla'];

您要做的是将整个数组设置为无效的字符串。您应该在将新值保存到$dizi数组时设置它。

$dizi = array();
foreach($_POST as $key => $value) {
    $newValue = $value;
    if (empty($value)) {
        $newValue = 'bos';
    }
    $dizi[$key] = $newValue;
    unset($newValue);
}

但这只检查答案字符串是否为空。因此,只有当所有问题都是强制性的时,这才有效。

如果我正确理解你,你想做的是:

foreach ( $_POST as $key => $value ) {
    if(empty($value))
        $_POST[$key] = 'This is an unanswered question!';
}

但由于表单中没有发布空值,因此这是不可行的。

如果问题不是从表单中发布的,您如何知道存在"未回答"的问题?您必须从问题列表(用户不能伪造,并且在服务器端定义)开始,检查$_POST中是否存在每个问题的答案。如果没有,请为跳过的答案指定您想要的内容。

试试这个:

if(isset($_POST) && (!empty($_POST))){
   foreach ( $_POST as $key => $value ) {
     if(empty($value)){
       $_POST="bos"; 
     } else{
       //put your code
     }
   }
 }