与遵守PHP的基础接触形式不工作
我已经尽了一切努力让这个表格工作,但没有运气 我想abide现在可以工作了,但是我的php没有发送电子邮件。我甚至不认为我的php会被调用 我的代码在下面 表格代码 第434行与遵守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">
<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´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";