php - 无法使用 Ajax 以联系方式发送电子邮件

标签 php jquery html css ajax

我非常接近完成这个小元素,我需要做的就是让我的联系表发送电子邮件。简单吧?不,哈哈

在提交消息后我已经关闭了联系表单,但没有发送电子邮件,想知道是否有人可以帮助我解决这个问题?我的代码如下:

http://madaxedesign.co.uk/dev/contact.php http://madaxedesign.co.uk/dev/

查询: var doSubmit = 函数(事件){ var postData = jQuery('#submit_message').serialize();

      jQuery.ajax({
        type: "POST",
        url: '/dev/contact.php',
        data: postData
      }).done(function( html ) {
        alert(html);
      });
      event.preventDefault();
    };

        $(function () {
        $('#submit_message').submit(doSubmit);
    });

PHP:

        <?php
        $your_email = "maxlynn@madaxedesign.co.uk";
        $subject = "Email From Madaxe";
        $empty_fields_message = "<p>Please go back and complete all the fields in the form.</p>";
        $thankyou_message = "<p>Thank you. Your message has been sent. We Will reply as soon as possible.</p>";

        $name = stripslashes($_POST['txtName']);
        $email = stripslashes($_POST['txtEmail']);
        $message = stripslashes($_POST['txtMessage']);

        if (!isset($_POST['txtName'])) {

        ?>

        <form id="submit_message" class="hide_900">
            <div id="NameEmail"> 
                <div>
                    <label for="txtName">Name*</label> 
                    <input type="text" title="Enter your name" name="txtName" />
                </div> 
                <div>
                    <label for="txtEmail">Email*</label> 
                    <input  type="text" title="Enter your email address" name="txtEmail" />
                </div> 
            </div>
            <div id="MessageSubmit">
                <div> 
                    <textarea maxlength="1200" title="Enter your message" name="txtMessage"></textarea> 
                    <label for="txtMessage">Message</label>
                </div>
                <div class="submit"> 
                    <input type="submit" value="Submit" /></label>
                </div>
            </div> 
        </form> 
        <?php

        }

        elseif (empty($name) || empty($email) || empty($message)) {

        echo $empty_fields_message;

        }

        else {

            $referer = $_SERVER['HTTP_REFERER'];
            $this_url = "http://".$_SERVER['HTTP_HOST'].$_SERVER["REQUEST_URI"];
        if ($referer != $this_url) {
        echo "You do not have permission to use this script from another URL, nice hacking attempt ;p.";
        exit;
            }

        mail($your_email, $subject, $message, "From: $name <$email>");

        echo $thankyou_message;

            }

        ?>

谢谢你的帮助

最佳答案

您应该调试您的代码以查看是否存在任何错误或错误,然后将错误包含在您的问题中以获得更好的帮助。但无论如何,快速看一下您的 jQuery 中缺少一个分号:

       jQuery.ajax({
           url: '/contact.php',
           data: postData
       }).done(function (html) {
           alert(html);
       });
       event.preventDefault();
   }; // <-- HERE

而且您的 HTML 格式不正确:

<div class="submit"> 
      <input type="submit" value="Submit" /></label> <!-- HERE the `label` -->
</div>

检查这两个并返返回告。恐怕它无法解决您的问题,但值得一试。

更新:

将此添加到您的 jQuery 中:

jQuery.ajax({
      type: "POST", // THIS
      url: '/contact.php',
      data: postData
      ...

关于php - 无法使用 Ajax 以联系方式发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16320595/

相关文章:

javascript - index.html :1 Uncaught ReferenceError: VARIABLE is not defined at HTMLDivElement. onclick

php - 使用php 5秒将数据保存到MySQL

php - 将 $x<y$ 替换为 $x < y$

javascript - 我怎样才能在第一次点击时给 div 一个 settimeout 而不是在第二次点击时?

javascript - 在垂直移动图像时遇到用户输入问题

javascript - 刷新 javascript 变量而不刷新页面

php - 如何防止用户为网址添加书签?

php - 我将如何防止在 MySQL 数据库上运行查询并以 JSON 格式输出的 PHP Web 服务脚本的热链接?

jquery - 如何在打开提交按钮模式之前验证输入

javascript - 根据先前保存在 localStorage OL3 中的坐标创建要素