【发布时间】:2010-08-11 17:21:32
【问题描述】:
我正在使用 ajax 提交联系人,而无需重新加载页面,它在大多数情况下运行良好,除非我尝试发送邮件正文时没有发送任何内容。 to 和 subject 部分工作正常,只是当身体试图发送时,我什么也看不到。我已经测试了它运行严格的 php 函数并且主体工作,只是页面重新加载,我不确定为什么它在这里工作,但不是 ajax。如果有人能提供一些启示,那就太好了,谢谢。
.js
$(document).ready(function () {
$('#submit').click(function () {
var contactformdata = {
you: $('#you').val(),
subject: $('#subject').val(),
message: $('#contactbody').val(),
}
$.ajax({
url: "http://www.trenthauck.com/index.php/home/sendemail",
type: 'POST',
data: contactformdata,
success: function () {
$('#contactheader').replaceWith("<p class='header'>Thanks</p>");
$('#contactform').remove();
$('#contactlink').remove();
$(document).scrollTop(25);
}
});
return false;
});
});
这是php函数(使用CI,顺便说一句)
function sendemail(){
$to = "auck@gmail.com";
$from = $this->input->post('you');
$subject = $this->input->post('subject');
$message = $this->input->post('contactbody');
$tosend = "From: " . $from . "\nMessage: " . $message;
mail($to, $subject, $message);
$this->index();
}
如果有帮助的话还有表格
<div class="divider" id="contact">
<p class = "header"><a id="contactheader" name="gocontact">Contact</a></p>
<div id = "contactform">
<form method = "post" id="contactform" action="<?php site_url()?>index.php/home/sendemail">
<div id ="formtitles">
<p class = "info">You:</p>
<p class = "info">Me:</p>
<p class = "info">Subject:</p>
<p class = "info">Body:</p>
<input id = "submit" type="submit" value="Send" />
</div>
<div id ="formfields">
<input id="you" type="text" name="you" /><br/>
<p class = "info">auck@gmail.com</p>
<input id ="subject" type="text" name="subject" /><br/>
<textarea id = "contactbody" name="contactbody"></textarea>
</div>
</form>
</div>
</div>
感谢您的帮助
【问题讨论】:
-
在调用索引和打印消息正文之前停止会发生什么?另外,检查
mail()调用的返回值。如果它是假的,那么就出了问题。 (祝你好运,虽然 搞清楚了,内置的邮件错误检查有点不存在......)
标签: php ajax email codeigniter