【发布时间】:2011-11-04 02:54:54
【问题描述】:
当我通过 Ajax 向 PHP 脚本提交联系表单时遇到问题。我之前使用过 jQuery/Ajax 函数以及联系脚本,但是在这种情况下,进程会一直运行到 ajax 请求,然后返回错误:空字符串。
$(document).ready(function(){
jQuery("#sendmail").click(function(){
var name = $("#name").val();
var phone = $("#phone").val();
var email = $("#email").val();
var text = $("#message").val();
//var datastr ='name=' + name + '&mail=' + mail + '&subject=' + subject + '&text=' + text;
var datastr ='name=' + name + '&phone=' + phone + '&email=' + email + '&text=' + text;
$("#form-div").css("float", "left");
$("#form-div").html("<p>Thank you for contacting Stillframe Photography.</p><p>Please wait for just a few moments while your enquiry is being sent.</p>");
$("#form-div").fadeIn("slow");
alert(datastr);
jQuery.ajax({
type: "POST",
url: "contact.script.php",
data: datastr,
success: function(html){
$("#response").fadeIn("slow");
$("#response").html(html);
//setTimeout('$("#response").fadeOut("slow")',2000);
}
,error: function (XMLHttpRequest, textStatus, errorThrown) {
$("#response").html('there was an error');
console.log('error thrown');
console.log(errorThrown);
}
});
});
});
您可以在http://www.stillframe.com.au/test.php 看到正在运行的页面,您可以在上面的同一链接中看到没有页面媒体的表单,但 test2.php
我还添加了没有任何其他 jQuery 的脚本到相同的 url,但 test3.php 直接发布到联系 PHP 脚本以确认该脚本中没有错误。
已解决:从头部删除了基本 href 标记,脚本现在可以正常工作了。
【问题讨论】:
-
您是否尝试过让您的 URL 包含数据,并删除“数据”行? url: 'contact.script.php?name=' + name + '&phone=' + phone + '&email=' + email + '&text=' + text,
-
我在 test2.php 上没有收到错误,它似乎在工作?
-
谢谢詹姆斯。在测试 2 中,您收到了“感谢您与我们联系”的回复还是收到了“出现错误”的回复?
-
这真的让我很困惑。我已将 URL 参数更改为上面更新的 Johnny。一样的回应。但是,当我收到发送给我的电子邮件时,似乎有些人一直在尝试使用该表单,因此表明该表单正在按预期工作。当我尝试 FF 和 Chrome 时,它不起作用,抛出错误并且没有发送电子邮件。
-
只是为了澄清 test3.php 将工作,因为它绕过 Ajax 请求并直接发布到 PHP 脚本。