PHP+PHPMailer表单:无客户邮箱查询数据时隐藏提交按钮
解决方案:根据客户邮箱是否存在隐藏提交按钮
很简单,咱们直接用PHP的条件判断就能搞定这个需求。核心思路就是:当查询返回的客户邮箱(也就是$email_cliente)为空时,不渲染提交按钮;反之则正常显示。
修改后的完整表单代码如下:
<form method="POST" action="enviarprueba.php" style="font-family: Calibri" > <input type="text" value="<?php echo $nombre_cliente;?>" name="nombre" size="35" hidden> <?php if (!empty($email_cliente)): ?> <input type="text" value="<?php echo $email_cliente;?>" name="emailenvio" size="35" hidden > <?php endif; ?> <input type="text" value='http://sys.cromatix.cl/documentos/mensaje_cliente1.php?cod_documento=<?php echo $cod_documento;?>' name="cotizacion" size="35" hidden> <input type="text" value="Envio Avances Cromatix" name="asunto" size="35" hidden> <br> <input type="text" value="<br>Estimado Cliente: <br> Nos dirijimos a usted para informarle que la mercaderia ha sido despachada como se evidencia en las imagenes anexas." name="msg" size="35" hidden> <?php if (!empty($email_cliente)): ?> <input type="submit" value="Enviar Aviso de Entrega" name="submit"> <?php endif; ?> </form>
补充说明:
- 这里用
!empty($email_cliente)做判断很合适——它会同时覆盖变量未定义、为空字符串、为null等多种场景,刚好对应查询语句无数据的情况。 - 我把
emailenvio这个隐藏字段也放进条件里了,毕竟没有客户邮箱的话,这个字段留着也没用,一起隐藏更合理。如果你的业务逻辑需要保留这个字段,直接删掉这部分的条件判断就行,只保留提交按钮的判断即可。 - 建议你在执行查询语句后,先初始化
$email_cliente = '';,查询到数据再赋值,这样能避免出现未定义变量的PHP警告。
内容的提问来源于stack exchange,提问作者Cristobal Hernandez
相关产品推荐
相关产品推荐

