php如何表单序列化提交,使用jQuery和PHP序列化和提交表单

我正在尝试使用jQuery发送表单的数据.但是,数据无法到达服务器.你能告诉我我做错了什么吗?

我的HTML表单:

JavaScript(与上面的表格在同一个文件中):

$(document).ready(function(e) {

$("#contactForm").submit(function() {

$.post("getcontact.php", $("#contactForm").serialize())

// Serialization looks good: name=textInNameInput&&telefon=textInPhoneInput etc

.done(function(data) {

if (data.trim().length > 0) {

$("#sent").text("Error");

} else {

$("#sent").text("Success");

}

});

return false;

})

});

服务器端PHP(/getcontact.php):

$nume = $_REQUEST["nume"]; // $nume contains no data. Also tried $_POST

$email = $_REQUEST["email"];

$telefon = $_REQUEST["telefon"];

$comentarii = $_REQUEST["comentarii"];

你能告诉我我做错了什么吗?

UPDATE

检查var_dump($_ POST)并返回一个空数组.

奇怪的是,在我的本地机器上测试的相同代码工作正常.

如果我在托管空间上传文件,它就会停止工作.我尝试不使用jQuery做一个老式的表单,所有数据都是正确的.

我不知道这将是一个服务器配置问题.有任何想法吗?

谢谢!

解决方法:

您可以使用此功能

var datastring = $("#contactForm").serialize();

$.ajax({

type: "POST",

url: "your url.php",

data: datastring,

dataType: "json",

success: function(data) {

//var obj = jQuery.parseJSON(data); if the dataType is not specified as json uncomment this

// do what ever you want with the server response

},

error: function() {

alert('error handling here');

}

});

返回类型是json

编辑:我使用event.preventDefault来防止浏览器在这种情况下提交.

在答案中添加更多数据.

dataType:“jsonp”如果是跨域调用.

beforeSend://这是一个预请求回调函数

complete://在请求结束后调用的函数.无论成功与否,必须执行的代码都可以在这里

async://默认情况下,所有请求都是异步发送的

cache://默认为true.如果设置为false,它将强制浏览器不缓存请求的页面.

查找官方页面here

标签:php,jquery,forms,serialization,form-submit

来源: https://codeday.me/bug/20190916/1807339.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值