【发布时间】:2014-01-13 01:40:50
【问题描述】:
我使用教程来构建我的发送按钮。我有两种表格,根据选择的表格,需要在“发送”时提交不同的表格,但是这个脚本除了搞砸我的邮件之外什么也没做。有人可以帮我解决这个问题并向我解释发生了什么吗?表单看起来与您想象的完全一样,但是我取出了表单的方法和操作属性,因为我认为它们将在下面的脚本中处理。
"Send": (function() {
if(submitbutton == 1){
var dataString = 'name:'+ name + '</br>email:' + email + '</br>phone:' + phone;
//alert (dataString);return false;
$.ajax({
var name = $("input#name").val();
var phone = $("input#phone").val();
var email = $("input#email").val();
type: "POST",
url: "mailer.php",
data: dataString,
success: function() {
$( this ).dialog( "close" );
}
});
return false;
}
else if(submitbutton == 2){
var dataString = 'name:'+ name + '</br>email:' + email + '</br>phone:' + phone;
//alert (dataString);return false;
$.ajax({
var name = $("input#name2").val();
var phone = $("input#phone2").val();
var email = $("input#email2").val();
type: "POST",
url: "mailer2.php",
data: dataString,
success: function() {
$( this ).dialog( "close" );
}
});
return false;
}
else if(submitbutton == 0){
$("#error").css("display", "");
}
}),
【问题讨论】:
-
mess up my mailer是什么意思?需要更具体地说明您的问题是什么。submitbutton在哪里定义? -
它是在脚本前面定义的,我不想用我的所有代码压倒任何人。在“发送”时,会从我的 mailer.php 发送一封带有 html 的电子邮件,但所有值都是空白的,这意味着这些值不能正确发布。另外,发送后对话框不会关闭,让我相信我的 ajax 语法有问题
-
对话框关闭是由于
this的上下文在$.ajax中丢失。将this元素定义为 ajax 之外的变量至于数据,检查在控制台网络选项卡中发出的请求以查看发送的内容,并检查是否抛出错误 -
对话框关闭现在完美运行,谢谢!但我不明白你在说什么数据。我对此有点陌生。另外,我没有办法将我的数据字符串定义为表单中的所有输入吗?为什么我必须用 html+jquery 设置我的数据字符串,如果数据字符串中的信息被发送到我的 mailer.php 为什么需要 html?它不会把事情搞砸吗?如果我有一个带有提交按钮和操作/方法的简单 html 表单,我是否需要对我的 mailer.php 做任何特别的事情?
-
你有 2 个脚本在玩......浏览器 javascript 和服务器 php。需要缩小问题所在。在浏览器控制台中可以检查请求本身并查看发送/接收的所有数据、状态、标头等。点击 F12..Chrome 内置开发工具和 Firebug for Firefox 是最常见的调试控制台
标签: jquery ajax forms submit send