jQuery/Ajax联系表格不工作
我是jQuery的新手。我正在尝试提交联系表单,并显示一封感谢信给我们反馈。我看了一下NetTuts +的教程,我的表单没有被提交。这里是我的代码:jQuery/Ajax联系表格不工作
jQuery的
<script src="jquery.js"></script>
<script>
$(document).ready(function() {
$('.error').hide();
$("#submitButton").click(function() {
$('.error').hide();
var name = $("input#name").val();
if (name == "") {
$("label#name_error").show();
$("input#name").focus();
return false;
}
var email = $("input#email").val();
if (email == "") {
$("label#email_error").show();
$("input#email").focus();
return false;
}
var companyName = $("#usermessage").val();
if (companyName == "") {
$("label#message_error").show();
$("input#usermessage").focus();
return false;
}
var subject=$("#subject option:selected").text();
var dataString = 'name='+ name + '&email=' + email + '&message=' + companyName;
//alert (dataString);return false;
$.ajax({
type: "POST",
url: "mailer.php",
data: dataString,
success: function() {
$('#contact_form').html("<div id='message'></div>");
$('#message').html("<h2>Contact Form Submitted!</h2>")
.append("<p>We will be in touch soon.</p>")
.hide()
.fadeIn(1500, function() {
$('#message').append("Thank you");
});
}
});
return false;
});
});
</script>
PHP
<?php
$mailTo = '[email protected]';
$name = htmlspecialchars($_POST['name']);
$mailFrom = htmlspecialchars($_POST['email']);
$subjectNumber = htmlspecialchars($_POST['subject']);
$message_text = htmlspecialchars($_POST['msg']);
switch ($subjectNumber)
{
case 0:
$subject='Sales';
break;
case 1:
$subject='Careers';
break;
case 2:
$subject='Other';
break;
}
$dataString=htmlspecialchars($_POST['dataString']);
//$message = 'From: '.$name.'; Email: '.$mailFrom.' ; Message: '.$message_text;
$sendcon=mail($mailTo, $subject, $message);
if (isset($_GET["ajax"])) {
echo $sendcon ? "success" : "error";
} else {
}
?>
的问题是,在按下提交按钮,没有任何反应。在JavaScript控制台上没有错误。 我认为我的php是不正确的,并没有听Ajax数据,因为Apache的错误日志说PHP Notice: Undefined index: dataString
。
我在哪里出错? 感谢
编辑:我是一个Ubuntu的机器上本地主机上运行此,我已经建立了邮件服务器,并用测试电子邮件测试它
你应该尝试以下操作:
$.post("mailer.php", { name: "John", email: "[email protected]" });
嘿...感谢您的链接... 但我最终使用这个[链接]的json方法(http://www.catchmyfame.com/2012/03/05/whats-the-best-jquery -method-for-retrieve-ajax-data /) – lazyprogrammer 2013-03-27 04:12:18
如果我们也能看到你的表单代码,这将会很有用。我已经在这里编写了一个教程:http://blog.fraser-hart.co.uk/ajax-contact-form-tutorial/
您可以下载这些文件并将它们与您的想法进行比较。请仔细阅读并通知我,如果您对任何工作有任何疑问,我会指出您的方向正确
嘿...感谢您的链接... 但是我最终使用了这个[link]的json方法(http://www.catchmyfame.com/2012/03/05/whats-the-best-jquery-for-retrieval-ajax-data /) – lazyprogrammer 2013-03-27 04:10:52
没有probs。让我知道如果你遇到任何东西 – Fraser 2013-03-27 13:44:09
我被困在Ajax [再次](http://*.com/questions/15826776/ajax-php-not-working-correctly) – lazyprogrammer 2013-04-05 05:48:29
如果您进入Chrome - >网络并点击“提交”,您应该会看到HTTP请求。表单看起来是否正确地将数据传递给服务器? – 2013-03-15 06:09:49
发布您的HTML表单代码 – Samy 2013-03-15 06:09:57
dataString不存在于您在ajax调用中设置为数据的url中。 – EmCo 2013-03-15 06:11:15