我正在尝试使用serializeArray()将表单输入转换为数组(在jquery中输入名称作为键和值作为值)...然后通过$ jquery.ajax将其传递给php脚本..使用发布方法。
$(function () {
$("#xbut").click(function () {
var values = {};
$.each($(':input').serializeArray(), function (i, field) {
values[field.name] = field.value;
});
$.ajax({
type: "POST",
url: 'ajax/NewClient.php',
data: {
clientdata: values
},
success: function (data) {
alert(data);
}
});
return false;
});
});
我昨晚有这个工作......但做了一些改变,现在无法恢复。当我使用数组的数组转换...我在NewClient.php中找不到$ _POST ['clientdata'] ..它只是没有定义。如果我将我的ajax数据更改为字符串...我可以找到我发布的内容。
有什么想法吗?
答案 0 :(得分:0)
我很确定
.serializeArray()
应该是
.serialize()
$(function() {
$("#xbut").click(function() {
var values = {};
$.ajax({
type: "POST",
url: 'ajax/NewClient.php',
data: { clientdata : $(":input").serialize() },
success: function(data){
alert(data);
}
});
return false;
});
});
答案 1 :(得分:0)
我已经测试了你的脚本,它似乎有效 -
<!DOCTYPE html>
<html lang="en">
<head>
<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<meta charset="utf-8" />
<title></title>
</head>
<script>
$(function() {
$("#xbut").click(function() {
var values = {};
$.each($(':input').serializeArray(), function(i,field){
values[field.name] = field.value;
});
$.ajax({
type: "POST",
url: 'PHPPage3.php',
data: { clientdata : values },
success: function(data){
alert(data);
}
});
return false;
});
});
</script>
<body>
<input type="text" name="tester"/>
<input type="button" value="x" id="xbut"/>
</body>
</html>
然后'PHPPage3.php'是 -
<?php
echo $_POST['clientdata']['tester'];
?>
点击第一页上的按钮后,“测试者”字段中的值会被警告回来。