我希望在if语句的另一个条件(如果有意义)中嵌套两个条件。让我解释一下。
我有一张表格。我有名字,电子邮件,然后我有两个textareas(一个由$ designer_program表示,一个由$ _designer_language表示)。一个textarea适用于填写表单的设计人员,一个textarea适用于填写表单的程序员。他们只需要填写一个,但必须填写一个。所以我在PHP中使用的if语句如下:
if (isset($_POST['designer_name']) && isset($_POST['designer_email']) && isset($_POST['designer_program'])){
etc.
这很好,但我想做Designer_program或designer_language。基本上我尝试过这样的事情:
if (isset($_POST['designer_name']) && isset($_POST['designer_email']) && isset(($_POST['designer_program']) || ($_POST['designer_language'])){
但是我想你不能像那样嵌套条件?我确信有一个简单的语法解决方案,但我找不到它。谢谢。
这是完整的代码:
<?php
if (isset($_POST['designer_name']) && isset($_POST['designer_email']) && isset($_POST['designer_program'])){
$designer_name = $_POST['designer_name'];
$designer_email = $_POST['designer_email'];
$designer_program = $_POST['designer_program'];
$designer_language = $_POST['designer_language'];
if(!empty($designer_name) && !empty($designer_email) && !empty($designer_program)){
$to = 'example@example.com';
$subject = 'Test Application: '.$designer_name;
$body = "Test Application";
$headers = 'From: '.$designer_email;
if (@mail($to, $subject, $body, $headers)){
echo '<script type="text/javascript">document.location.href="thankyou.php";</script>';
}
}
else{
echo '<script type="text/javascript">
window.alert("Please fill out all fields.");
</script>';
}
}
?>
答案 0 :(得分:1)
您的逻辑失败,因为所有文本区域都被发送,无论它们是否包含信息。
您需要对POST
进行一次检查,然后使用您对非空值而不是设置值的条件进行检查。
if (isset($_POST['designer_name'])
{
if (!empty() && !empty() && ( !empty() || !empty() ))
{