使用AJAX和PHP提交联系人表单
Submitting a contact form using AJAX and PHP
我想做一个AJAX表单,点击一下,触发URI: '/send/contact',我使用https://github.com/Nikic/FastRoute进行路由,这就是我定义路由的方式:
['POST', '/send/contact', ['HassanAlthaf'PersonalWebsite'Controllers'ContactTool', 'submitForm']],
这是运行的方法:
public function submitForm()
{
$sender = $this->httpRequest->getParameter('fullName');
$email = $this->httpRequest->getParameter('email');
$subject = $this->httpRequest->getParameter('subject');
$message = $this->httpRequest->getParameter('message');
$ipAddress = $this->httpRequest->getIpAddress();
$result = $this->contactFormService->saveForm($sender, $email, $subject, $message, $ipAddress);
if ($result === true) {
$this->httpResponse->setContent("<div id='"content'"><div class='"success'">You have successfully sent the message.</div></div>");
} else {
$this->httpResponse->setContent("<div id='"content'">" . json_encode($result) . "</div>");
}
}
处理表单的jQuery代码:
$("#contact-form").submit( function(event) {
event.preventDefault();
var $form = $(this),
sender = $form.find('input[name="fullName"]').val(),
email = $form.find('input[name="emmail"]').val(),
subject = $form.find('input[name="subject"]').val(),
message = $form.find('textarea[name="message"]').val(),
url = $form.attr('action');
var posting = $.post(url, {
sender: sender,
email: email,
subject: subject,
message: message
});
posting.done( function(data) {
var content = $(data).find('#content');
$("#result").empty().append(content);
});
});
最后,我的表单HTML代码:
<form class="contact-form" method="post" action="send/contact" id="contact-form">
<input type="text" name="fullName" class="input-field" placeholder="Your full name" maxlegth="50" required>
<input type="email" name="email" class="input-field" placeholder="Your email" maxlength="100" required>
<input type="text" name="subject" class="input-field" placeholder="Subject" maxlength="75" required>
<textarea rows="4" type="text" name="message" class="input-field text-area" placeholder="Your message" maxlength="2000"></textarea>
<input type="submit" name="send" value="Send Message" class="button">
</form>
但是,它没有给出任何响应。我点击它,它就像一张图片一样闲置着。知道为什么吗?我查了数据库,没有变化。它也不会抛出任何验证检查或任何东西。
您的代码工作得很完美,但是这一行有一个错别字。
email = $form.find('input[name="emmail"]').val(),<--- 2 m
email = $form.find('input[name="email"]').val(),<--- should be
测试了表单,它按预期从服务器返回数据。
尝试在提交函数的末尾使用return false;
而不是event.preventDefault();
如果这不起作用,请使用console.log(data);
,这样您将在控制台中获得响应。
另外,为什么不使用$("form").serialize();
从输入生成查询字符串?
$("#result").html(content);
也应该足够,因为它替换了它的内容。
没关系,这是一个简单的修复。我的PHP代码期望$_POST['fullName'];
之类的东西,因此,必须将sender: sender,
更改为fullName: fullName,
并更改使用sender.
相关文章:
- 在验证和发送邮件后更改联系人表单的 html
- 在联系人表单中实现jQueryAJAX
- jquery.validator和一个页面上的两个联系人表单将在提交时验证空表单
- PHP&jQuery联系人表单错误
- Javascript按钮,它提交联系人表单7表单,然后重定向到URL
- 我正在验证一个联系人表单.我是不是过滤太多了
- 防止联系人表单在提交后消失
- PHP Angular JS联系人表单将't张贴
- 如何在联系人表单7 Wordpress中添加自定义javascript函数
- 如何使javascript联系人表单正确提交
- 在联系人表单中显示隐藏警告被延迟
- 基于AJAX的联系人表单7事件跟踪新的谷歌分析代码
- 映射的联系人表单在Jquery-1.11中无法正常工作
- 激活联系人表单上的输入字段需要在手机上点击2次
- 始终显示联系人表单中的问题成功消息
- HTML5,CSS3,PHP联系人表单不发送信息+添加必填字段
- 联系人表单-提交按钮不起作用
- 如何使用JS清理联系人表单后删除HTML5表单验证
- 联系人表单变量不会从部分标签传递到 javascript 中
- 如何在 html 弹出窗口中显示联系人表单