使用 AJAX 将表单提交到两个位置
Using AJAX to submit form to two locations
我需要一些帮助。我正在使用 AJAX 将表单提交到一个位置,然后提交到另一个位置。一旦它发布到第二个位置,它就会向我想要的任何人发送一封带有 PHP 的电子邮件,但我似乎无法让它工作。有人可以帮忙吗?
这是我下面的代码:
$(document).ready(function(){
$('input#submit').submit(function(event){
var dataString = $('form :input').serialize();
$.ajax({
type: 'GET',
url: 'http://www.domain.com/sendmail.php',
data: dataString,
success: function(result){
$('p#message').text('SUCCESS!!!');
},
error: function(result){
$('p#hint').text('there was an error');
}
});
event.preventDefault();
});
});
除非你已经有一些算法,否则你在服务器端处理数据时会遇到问题。您可能希望准备数据,然后将其字符串化为 JSON。我还会将 ajax 功能保留在其自己的函数中,并使用 promise
功能。这样,您还可以将其用于脚本中的其他调用。
具有延迟的 Ajax 函数
function ajaxsend(data, url) {
var deferred = $.ajax({
type: 'POST',
url: url,
data: data,
dataType: "json",
});
return deferred.promise();
}
表单数据处理和准备
$("form").submit(function (event) {
event.preventDefault();
var formdata = $('form').serializeArray();
var formobject = {};
// transform data to prepare for JSON
$(formdata).each(function (e) {
formobject[formdata[e].name] = formdata[e].value;
});
var data = {
json: JSON.stringify(formobject)
};
var url = 'http://www.domain.com/sendmail.php';
var url2 = 'some_other.php';
ajaxsend(data, url).done(function (response) {
// handle returned results
console.log(response);
}
ajaxsend(data, url2).done(function (response) {
// handle returned results
console.log(response);
}
}
在服务器端,您通过以下方式接收值:
$data = json_decode($_POST['json']);
然后,您可以使用表单的字段名称访问数据。例如。。
$data -> firstname;
您可以从 php 文件发送响应:
if(success == true) {
$result = array("success" => true , "message" => "form submitted");
echo json_encode($result);
}
if(success == false) {
$result = array("success" => false , "message" => "an error occured");
echo json_encode($result);
}
在javascript端,你可以捕获响应值
console.log(response.success);
console.log(response.message);
检查差异:
$('form').submit(function(event){ // 'input#submit' is a button and cannot be "submited", just clicked
var dataString = $(this).serialize(); // suffisant
$.ajax({
type: 'GET',
url: 'http://www.domain.com/sendmail.php',
data: dataString,
success: function(result){
$('p#message').text('SUCCESS!!!');
return true; // trigger the form default action
},
error: function(result){
$('p#hint').text('there was an error');
}
});
event.preventDefault();
});
相关文章:
- 在AngularJS中的两个位置使用相同的控制器
- 在两个位置显示数组中的随机单词
- javascript中两个位置之间的距离
- 1行代码(console.log),代码中的两个位置=两个结果差异
- 如何将两个位置添加到同一个网站的谷歌地图中
- 比较画布上两个位置的 x/y
- 使用 AJAX 将表单提交到两个位置
- 获取两个位置之间的距离和时间的功能
- 两个位置之间的距离 - 谷歌地图
- Parse.com云代码,计算两个位置之间的行驶距离
- $(文档).从两个位置单击
- 绘制两个位置之间的单元格
- 计算两个位置之间的距离谷歌地图Api
- 两个位置标记之间的距离
- 如何获得两个位置值的函数:固定和绝对
- 在HTML地图上绘制两个位置之间的路线
- 通过提供源和目标 .NET 或 JavaScript 的纬度和经度来计算两个位置之间的道路距离
- Google Maps JavaScript API v3 在两个位置之间绘制线条
- 页面上两个位置的相同 iframe
- 使用Javascript和PHP向两个位置提交表单数据