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