因此,我正在制作一个电子邮件表单,并使用AJAX链接到使用PHPMailer发送电子邮件的外部PHP文件。所以我在PHP的顶部验证码:表单字段值没有被传递给PHP文件
if(count($_POST) > 0){
$message=
'Full Name: '.$_POST['name'].'<br />
Email: '.$_POST['email'].'<br />
Message: '.$_POST['textarea'].'<br />
Current Website: '.$_POST['website'].'<br />
Business Name: '.$_POST['business'].'<br />
';
,并
- 在本地主机使用WAMP,这将很好地工作,并会发送电子邮件与各自领域
- 在现场版本,电子邮件不通过在PHP文件中的
if(count($_POST) > 0)
如果if语句被删除,它确实发送电子邮件,我收到它,但电子邮件只有“全名:”和“电子邮件:”等填充空白和n o从HTML表单输入的值。这里是AJAX代码:
var ajax = { isSubmiting: false, send: function() { if(ajax.isSubmiting == false) { ajax.isSubmiting = true; var name = $("input[name=name]").val(); var email = $("input[name=email]").val(); var textarea = $("textarea").val(); var business = $("input[name=business]").val(); var website = $("input[name=website]").val(); ajax.SetText("Sending..."); $.post("sendmail.php", { name: name, email: email, textarea: textarea, business: business, website: website }, function(data) { if (data.trim() == "true") { ajax.SetText("Sent!"); console.log(data); $.get("sent.html", function(sentData){ $("#content").html(sentData); }); } else { ajax.SetText("Send mail"); console.log(data); $.get("unsent.html", function(sentData){ $("#content").html(sentData); }); } ajax.isSubmiting = false; }); } else alert("You can only send one email at a time!"); }, SetText: function(text) { $("input[type=button]").val(text); } }
,这是形式的HTML标记:
<form name="contact-form" method="post" id="contact-form">
<h3> We want to hear from you! Tell us about your business and/or project and what you need and we'll get back to you as soon as possible! </h3>
<div class="form-group">
<label for="name">Your Name:</label>
<input type="text" name="name" class="form-control" placeholder="Your Name" required/>
</div>
<div class="form-group">
<label for="email">Your Email:</label>
<input type="email" name="email" class="form-control" placeholder="Your Name" required/>
</div>
<div class="form-group">
<label for="web">Current Website (if available):</label>
<input type="text" name="website" class="form-control" placeholder="Current Website (if available)"/>
</div>
<div class="form-group">
<label for="web">Business Name (if available):</label>
<input type="text" name="business" class="form-control" placeholder="Business Name (if available)"/>
</div>
<div class="form-group">
<label for="comment">Message:</label>
<textarea id="textarea" rows="5" class="form-control" name="textarea" placeholder="Message"></textarea>
</div>
<div class="row" align="center" id="button-row2">
<input type="button" value="Submit" onClick="ajax.send()" class="btn">
</div>
</form>
任何想法,为什么这可能是这样吗?
你能否证实,在这两种情况下(测试和生活)你的AJAX代码正在运行,而不是形式开始提交的HTML表单到同一页面的URL它的位置? – fvgs
另外,你可以确认变量'名称,电子邮件,textarea等'是否填充之前,在实时环境中发送? – fvgs
@fvgs我确定AJAX正在运行,因为在$ .post之后,它表示数据== true,它将以其他方式返回。我猜,这意味着它首先经历了它。而且我为每个变量输入了值,但是如何确认? –