Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:这个带有复选框列表的foreach有什么问题?仅当我从列表中选择一项时,它才起作用_Php_Foreach - Fatal编程技术网

PHP:这个带有复选框列表的foreach有什么问题?仅当我从列表中选择一项时,它才起作用

PHP:这个带有复选框列表的foreach有什么问题?仅当我从列表中选择一项时,它才起作用,php,foreach,Php,Foreach,我有一个上传文件的用户列表,如表所示。每个都有一个复选框,我应该能够选中一个或多个,按下按钮,删除数据库中的文件引用,并向用户发送电子邮件 我的foreach循环无法按预期工作。当我只选择一个用户时,它会工作,但当选择多个用户时,它不会工作。我知道foreach循环是个问题,但找不到原因 这是每个用户之外的复选框: ……等等 下面是我的PHP代码: 为什么您认为foreach循环是问题所在?你确认你的$\u帖子是一个数组了吗?我会将输入名设为desecharDocs[],并将value属性设为表

我有一个上传文件的用户列表,如表所示。每个都有一个复选框,我应该能够选中一个或多个,按下按钮,删除数据库中的文件引用,并向用户发送电子邮件

我的foreach循环无法按预期工作。当我只选择一个用户时,它会工作,但当选择多个用户时,它不会工作。我知道foreach循环是个问题,但找不到原因

这是每个用户之外的复选框: ……等等

下面是我的PHP代码:
为什么您认为foreach循环是问题所在?你确认你的$\u帖子是一个数组了吗?我会将输入名设为desecharDocs[],并将value属性设为表中的自动增量值,而不是使用电子邮件地址。如果只使用数值,则会减少出错的机会,因为您只处理字符类型的数字。这是什么选择:$avisar=SELECT mailNombre,mailAsunto,mailMensaje FROM configMailsUsuarios,其中mailNombre='mailDocDesechada';?似乎它应该有一个动态的价值呢?可能它在每个循环上都选择了相同的东西?if$desecharAhora{echo'Documentació;n desechada para'.$key..部分工作吗?您能看到多个用户的echo以及键值吗?
<td> <input name="desecharDocs['.$x['userEmail'].']" type="checkbox"></td>
name="desecharDocs['usuario1@example.com']"
name="desecharDocs['usuario2@example.com']"
 if(isset($_POST['desecharDocumentacion'])) { 
        $desechar = $_POST['desecharDocs'];
        foreach ($desechar as $key => $value) {

            //Borramos la entrada en base
            $sql = "UPDATE usuarios 
                    SET docFoto = NULL, docDNI = NULL, docCertif = NULL, docVerificada = 0
                    WHERE userEmail = '$key'
                    ";
            $desecharAhora = mysqli_query($conectar, $sql);

              if ($desecharAhora) {
                  echo 'Documentaci&oacute;n desechada para '.$key.'<br>';

                  //Mandamos un mail al usuario
                  $avisar = "SELECT mailNombre, mailAsunto, mailMensaje
                             FROM configMailsUsuarios
                             WHERE mailNombre = 'mailDocDesechada'
                            ";
                  if ($correo = mysqli_fetch_array(mysqli_query($conectar, $avisar))) {
                    $mail->addAddress($key);
                    $mail->Subject = $correo['mailAsunto'];
                    $mail->Body    = $correo['mailMensaje'];
                    if(!$mail->send()) {
                        echo 'El mail no se mand&oacute;: ' . $mail->ErrorInfo;
                        echo $avisar;
                    } else { echo 'Se envi&oacute; un correo de aviso a '.$key.'<br>';}
                  }
              }
        }
  }