与遵守PHP的基础接触形式不工作

与遵守PHP的基础接触形式不工作,php,forms,zurb-foundation,contact,Php,Forms,Zurb Foundation,Contact,我已经尽了一切努力让这个表格工作,但没有运气 我想abide现在可以工作了,但是我的php没有发送电子邮件。我甚至不认为我的php会被调用 我的代码在下面 表格代码 第434行 <form id="myForm" data-abide action="mail.php" method="post"> <div class="contactform">

我已经尽了一切努力让这个表格工作,但没有运气

我想abide现在可以工作了,但是我的php没有发送电子邮件。我甚至不认为我的php会被调用

我的代码在下面

表格代码 第434行

<form id="myForm" data-abide action="mail.php" method="post">
                                <div class="contactform">
                                    <div class="item item-pair">
                                      <label for="name">Full Name
                                        <input type="text" name="name" id="name" class="small-input cat_textbox" required   pattern="[a-zA-Z]+"  maxlength="255">
                                         <small class="error small-input">Name is required and must be a string.</small>
                                      </label>
                                      <label for="email">Email Address
                                        <input type="text" name="email" id="email" class="small-input cat_textbox" maxlength="255" required  >
                                         <small class="error small-input">An email address is required.</small>
                                      </label>
                                    </div>
                                    <div class="item">
                                      <label>Comments</label>
                                      <textarea  cols="10" name="message" id="message" rows="4" class="cat_listbox" required ></textarea>
                                      <small class="error">Please enter your comments</small>
                                    </div>
                                    <div class="item">
                                      <input class="button alert small" type="submit" value="Submit" id="catwebformbutton">
                                    </div>
                                </div>
                              </form>

全名
名称是必需的,并且必须是字符串。
电子邮件地址
需要一个电子邮件地址。
评论
请输入您的评论
javascript代码 第627行

<script>

         $('#myForm').submit(function(e) {
            //prevent default form submitting.
            e.preventDefault();

            $(this).on('valid', function() {
              var name = $("input#name").val();
              var email = $("input#email").val();
              var message = $("textarea#message").val();

              //Data for reponse
              var dataString = 'name=' + name +
                '&email=' + email +
                '&message=' + message;

              //Begin Ajax call
              $.ajax({
                type: "POST",
                url:"mail.php",
                data: dataString,
                success: function(data){
                  $('.contactform').html("<div id='thanks'></div>");
                    $('#thanks').html("<h2>Thanks!</h2>")
                    .append("<p>Dear "+ name +", I will get back to you as soon as I can ;)</p>")
                    .hide()
                    .fadeIn(1500);
                },
              }); //ajax call
              return false;
            });
          });    


        </script>

$('#myForm')。提交(函数(e){
//防止默认表单提交。
e、 预防默认值();
$(this).on('valid',function()){
变量名称=$(“输入名称”).val();
var email=$(“输入电子邮件”).val();
var message=$(“textarea#message”).val();
//应答数据
var dataString='name='+name+
“&email=”+电子邮件+
“&message=”+消息;
//开始Ajax调用
$.ajax({
类型:“POST”,
url:“mail.php”,
数据:dataString,
成功:功能(数据){
$('.contactform').html(“”);
$(“#谢谢”).html(“谢谢!”)
.append(“亲爱的”+name+”,我会尽快给你回复;)

”) .hide() .fadeIn(1500); }, });//ajax调用 返回false; }); });
html链接

请帮忙

<?php

$name = $_POST["name"];
$email = $_POST["email"];
$comments = $_POST["message"];

$msg = "
Name:$name
Email:$email
Comment:
$comments";

$to = "tayrani@hotmail.com";
$subject = "website email";
$message = $msg;
$headers = "form";
mail($to,$subject,$message,$headers);

?>

谢谢你的帮助,我让它工作了。原来是Hotmail出于某种原因不接受电子邮件。所以,我用一个Gmail帐户取代了Hotmail帐户,它成功了。我还用以下代码更新了我的代码

表单的html代码

<form id="myForm" data-abide="ajax" action="mail.php" method="post">
    <div class="contactform">
        <div class="item item-pair">
          <label for="name">Full Name
            <input type="text" name="name" id="name" class="small-input cat_textbox" required   pattern="[a-zA-Z]+"  maxlength="255">
             <small class="error small-input">Name is required and must be a string.</small>
          </label>
          <label for="email">Email Address
            <input type="email" name="email" id="email" class="small-input cat_textbox" maxlength="255" required  >
             <small class="error small-input">An email address is required.</small>
          </label>
        </div>
        <div class="item">
          <label>Comments</label>
          <textarea  cols="10" name="message" id="message" rows="4" class="cat_listbox" required ></textarea>
          <small class="error">Please enter your comments</small>
        </div>
        <div class="item">
          <input class="button alert small" type="submit" value="Submit" id="catwebformbutton" name="btnSubmit">
        </div>
    </div>
</form>

全名
名称是必需的,并且必须是字符串。
电子邮件地址
需要一个电子邮件地址。
评论
请输入您的评论
我的javascript代码,包括修复提交问题

<script>
 $('#myForm').submit(function(e) {
    //prevent default form submitting so it can run the ajax code first 
    e.preventDefault();

    $(this).on('valid', function() {    //if the form is valid then grab the values of these IDs (name, email, message) 
      var name = $("input#name").val();
      var email = $("input#email").val();
      var message = $("textarea#message").val();

      //Data for reponse (store the values here)
      var dataString = 'name=' + name +
        '&email=' + email +
        '&message=' + message;

      //Begin Ajax call
      $.ajax({
        type: "POST",
        url:"mail.php", //runs the php code 
        data: dataString, //stores the data to be passed 
        success: function(data){ // if success then generate the div and append the the following
          $('.contactform').html("<div id='thanks'></div>");

            $('#thanks').html("<br /><h4>Thanks!</h4>")
            .append('<p><span style="font-size:1.5em;">Hey</span> <span class="fancy">'+ name +'</span>,<br />I&acute;ll get back to you as soon as I can ;)</p>')
            .hide()
            .fadeIn(1500);
        },
        error: function(jqXHR, status, error){ //this is to check if there is any error
            alert("status: " + status + " message: " + error);
        }
      }); //End Ajax call 
      //return false;
    });
  });    
</script>

<script>
    $(document).foundation('abide', 'events'); // this was originally before the above code, but that makes the javascript code runs twice before submitting. Moved after and that fixes it.
</script>

$('#myForm')。提交(函数(e){
//防止默认表单提交,以便它可以首先运行ajax代码
e、 预防默认值();
$(this).on('valid',function(){//如果表单有效,则获取这些ID的值(名称、电子邮件、消息)
变量名称=$(“输入名称”).val();
var email=$(“输入电子邮件”).val();
var message=$(“textarea#message”).val();
//用于响应的数据(将值存储在此处)
var dataString='name='+name+
“&email=”+电子邮件+
“&message=”+消息;
//开始Ajax调用
$.ajax({
类型:“POST”,
url:“mail.php”,//运行php代码
data:dataString,//存储要传递的数据
success:function(data){//如果成功,则生成div并附加以下内容
$('.contactform').html(“”);
$(“#谢谢”).html(“
谢谢!”) .append(“嘿”+name+”,
我会尽快给你回复的;)

) .hide() .fadeIn(1500); }, 错误:函数(jqXHR,status,error){//这是为了检查是否有任何错误 警报(“状态:+状态+”消息:+错误); } });//结束Ajax调用 //返回false; }); }); $(document).foundation('遵守','事件');//这最初是在上面的代码之前,但是这使得javascript代码在提交之前运行了两次。在后面移动,这就解决了它。
下面是php代码

<?php

if(isset($_POST["name"])){
    $name = $_POST["name"];
    $email = $_POST["email"];
    $comments = $_POST["message"];

    $msg = "
    Name: $name
    Email: $email
    Comments:
    $comments";

    $to = "h2hussein@gmail.com";
    $subject = "Tayrani.com Contact Form";
    $headers = "From: <$email>";

    mail($to,$subject,$msg,$headers);
}else{

}
?>

我挣扎了三天才完成这项工作,但要感谢我的同事/朋友亚当,因为他真的帮助了我

我希望这对其他人有用

谢谢

侯赛因

您的ajax功能是否运行良好。。?尝试放置var_dump($name);在mail.php上查找$name是否得到了它的值。我只想确认ajax调用是否有效;在mail.php页面上,然后重试。所以我们可以找到实际的问题。我把它放在那里,但它没有做任何事情。它应该做一个特定的动作吗?如果我访问tayrani.com/mail.php,它会给出NULLchange$headers=“form”;至$headers=“from:abc@gmail.com";