-5

我正在尝试从 foreach 循环中排除电子邮件代码,目前电子邮件成功消息显示 3 次。我尝试了不同的组合,但不能让它只显示一次......?

有任何想法吗..?谢谢

if (isset($_POST['submit'])) {

    $posted = $_POST;
    $options = array('option-1' => __('Procedure: Suture Skin Wounds', 'appthemes'),
            'option-2' => __('Procedure: Cat castration', 'appthemes'),
            'option-3' => __('Procedure: Cat spay', 'appthemes')
    );

    foreach ($options as $option => $value) {

        if ($posted[$option] == "selected") {
            echo "<li class='error-list'>";
            echo "Please select an answer for:" . "  " . $value . " >  
     " . '<a  href="' . get_permalink(30) . '">Back to form</a>';
            echo "</li>";
        }// if == "selected"
        else/* if(isset($_POST['submit'])) */ {

            $adminemail = get_option('admin_email');

            $ToEmail = $adminemail;
            $EmailSubject = 'Skills Assessment Form';
            $mailheader = "From Leapfrog";
            $mailheader .= "Reply-To: " . $_POST["email"] . "\r\n";
            $mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n";
            $MESSAGE_BODY = "Form:Small Animal\n";
            $MESSAGE_BODY = "Name: " . $_POST["canname"] . "\n\n";
            $MESSAGE_BODY .= "\n\n" . "Procedure: " . "Suture Skin Wounds: " . $_POST["option-1"];
            $MESSAGE_BODY .= "\n\n" . "Procedure: " . "Cat castration: " . $_POST["option-2"];
            $MESSAGE_BODY .= "\n\n" . "Procedure: " . "Cat spay: " . $_POST["option-3"];

            mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die("Failure");
            echo "Your skills assessment form has been Sent:" . "  " .
            '<a href="' . get_permalink(13) . '">Back to your Dashboard</a>';
            //echo '<a href="'.get_permalink(13).'">Dashboard</a>';
        }//else                                  
    }//foreach loop;      
}//if isset
4

1 回答 1

1

foreach您正在循环内执行所有操作:显示错误、发送消息和显示成功消息。

您需要将所有内容移出foreach循环,例如通过$errors在循环之前设置一个空数组并将所有错误消息添加到该数组。

然后,在循环之后,您可以检查$errors数组是否仍然为空并发送邮件并显示您的成功消息。如果不是,则显示所有错误。

于 2012-12-29T16:34:19.943 回答