首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP : mail() -发送多个主题

PHP : mail() -发送多个主题
EN

Stack Overflow用户
提问于 2019-12-01 13:44:24
回答 1查看 338关注 0票数 1

我在一页上有两份联系表格。但是我想用php mail functions发送不同的主题。当从第一个表单发送数据时,将显示"Subject-1“,如果是在另一个窗体中,则显示"Subject-2”。如何比较post请求中的每个表单来设置正确的主题

第一形式

代码语言:javascript
复制
                    <form id="contact-form" method="POST" class="d-flex form footer-form">
                        <input type="text" class="simple-input" id="name" name="name" placeholder="Name">
                        <input type="text" class="simple-input" id="email" name="email" placeholder="Email address">
                        <textarea class="quession-input" id="msg" name="msg" placeholder="Your question"></textarea>
                        <div class="checkboks custom-sq">
                            <input type="checkbox" class="checked-checkbox" name="myCheckboxes" id="box1" checked="checked" value="true" />
                            <label for="box1" class="checkboks-text"><?php echo the_field('checkbox_text', 'option'); ?></label>
                        </div>
                        <button type="submit" class="danger-btn submit"><?php echo the_field('btn_send', 'option'); ?></button>
                    </form>

第二形式

代码语言:javascript
复制
            <form id="hy-form" method="POST" class="d-flex form">
                <input type="text" class="simple-input" name="hy_name" id="hy_name" placeholder="Name">
                <input type="text" class="simple-input" name="hy_email" id="hy_email" placeholder="Email address">
                <textarea class="quession-input" id="hy_msg" name="hy_msg" placeholder="Your question"></textarea>
                <div class="checkboks custom-sq">
                    <input type="checkbox" id="box3" name="myCheckboxesHy" class="checked-checkbox" checked="checked" value="true"/>
                    <label for="box3" class="checkboks-text"><?php echo the_field('checkbox_text', 'option'); ?></label>
                </div>
                <button type="submit" class="danger-btn hy-submit"><?php echo the_field('btn_send', 'option'); ?></button>
            </form>

代码语言:javascript
复制
add_action('wp_ajax_nopriv_send_email', 'send_email');
add_action('wp_ajax_send_email', 'send_email');
function send_email() {

    $checkbox = $_POST['myCheckboxes'];
    if (isset($checkbox)) {
        echo $checkbox;
    }

    $checkbox_hy = $_POST['myCheckboxesHy'];
    if (isset($checkbox_hy)) {
        echo $checkbox_hy;
    }
    $headers = 'Content-Type: text/html; charset="utf-8"';
    $name = $_POST['name'];
    $url = $_POST['url'];
    $hy_name = $_POST['hy_name'];
    $from = 'gtest@gtest.com';
    $to = 'gtest@gtest.com';
    $email = $_POST['email'];
    $hy_email = $_POST['hy_email'];
    $msg = $_POST['msg'];
    $hy_msg = $_POST['hy_msg'];
    $subject = 'Footer form: ' . $_POST['email'];
    $message .= (!empty($name)) ?  '<p><strong>User Name</strong> : ' . $name .'  </p>' : '';
    $message .= (!empty($email)) ?  '<p><strong>User Email</strong> : '. $email .'</p>' : '';
    $message .= (!empty($msg)) ?  '<p><strong>User Message</strong> : '.$msg .'</p>' : '';
    $message .= (!empty($checkbox)) ?  '<p><strong>Checkboxs</strong> : '.$checkbox .'</p>' : '';

    $message .= (!empty($hy_name)) ?  '<p><strong>User Name</strong> : '.$hy_name .'</p>' : '';
    $message .= (!empty($hy_email)) ?  '<p><strong>User Email</strong> : '.$hy_email .'</p>' : '';
    $message .= (!empty($hy_msg)) ?  '<p><strong>User Message</strong> : '.$hy_msg .'</p>' : '';
    $message .= (!empty($checkbox_hy)) ?  '<p><strong>Checkboxses</strong> : '.$checkbox_hy .'</p>' : '';


    $message .= (!empty($url)) ?  '<p><strong>Url:</strong> : '.$url .'</p>' : '';
    $message .= '</body></html>';
    echo mail($to, $subject, $message, $headers);
    return  $msg;
    die();
}

更新:

我试过这个代码,这是工作,但正确的方法?

代码语言:javascript
复制
if ($hy_name) {
    $subject = 'HY form: ' . $_POST['email'];        
} elseif ($name) {
    $subject = 'Footer form: ' . $_POST['email'];
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-01 13:54:39

有多种方法。

一种是添加一个隐藏字段:

第一种形式

代码语言:javascript
复制
<input type="hidden" name="form_name" value="the_first_form"/>

第二种形式

代码语言:javascript
复制
<input type="hidden" name="form_name" value="the_second_form"/>

在PHP中

代码语言:javascript
复制
if ($_POST["form_name"] === "the_first_form") {
  $subject = "Subject for the first form";
} else {
  $subject = "another subject";
}

Sidenote:请注意浏览器只提交一份表单。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59126101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档