Javascript 使用AJAX和PHP提交联系人表单

Javascript 使用AJAX和PHP提交联系人表单,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,我正在尝试制作一个AJAX表单,只需单击一下,就会触发URI:“/send/contact”,我使用https://github.com/Nikic/FastRoute 对于路由,我是这样定义路由的: ['POST','/send/contact',['hassantalf\PersonalWebsite\Controllers\ContactTool','submitForm'], 这是运行的方法: public function submitForm() { $sender = $t

我正在尝试制作一个AJAX表单,只需单击一下,就会触发URI:“/send/contact”,我使用https://github.com/Nikic/FastRoute 对于路由,我是这样定义路由的:

['POST','/send/contact',['hassantalf\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>");
    }
}
最后,我的表单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 

email=$form.find('input[name=“email”]').val(),尝试使用
returnfalse而不是
event.preventDefault()

如果不起作用,请使用
console.log(数据)这样您将在控制台中获得响应

另外,为什么不直接使用
$(“form”).serialize()
从输入生成查询字符串


$(“#结果”).html(内容)在替换内容时也应该足够了。

没关系,这是一个简单的修复。我的PHP代码期望类似于
$\u POST['fullName']发件人:发件人,
更改为
全名:全名,
,并更改我使用
发件人这个词的位置。

您有问题吗?对不起,我的错。我忘了包括那个@Jayblanchard您是否在浏览器控制台中查看了请求/响应?修复了此问题@JayBlanchardIt仍然提供空白内容。
返回false=
event.preventDefault()
;这是一回事@mdamia@Jez我想说的是,它们都可以防止事件被触发。在这种情况下,请防止提交表单@杰布兰查德
 email = $form.find('input[name="emmail"]').val(),<--- 2 m
 email = $form.find('input[name="email"]').val(),<--- should be