Javascript 用AJAX解析关联数组
我有以下关联数组,我尝试通过AJAX将其发送到服务器 检查我的控制台,在“网络”选项卡中,它已发布,但未解析任何内容 数组创建:Javascript 用AJAX解析关联数组,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有以下关联数组,我尝试通过AJAX将其发送到服务器 检查我的控制台,在“网络”选项卡中,它已发布,但未解析任何内容 数组创建: var FiltersArray = []; FiltersArray['category'] = this.category.val(); FiltersArray['Type1'] = this.type1.val(); FiltersArray['Type2'] = this.type2.val(); $.ajax({
var FiltersArray = [];
FiltersArray['category'] = this.category.val();
FiltersArray['Type1'] = this.type1.val();
FiltersArray['Type2'] = this.type2.val();
$.ajax({
type: POST,
url: 'something.php',
data: {
data: FiltersArray
}
}).done(function(data) {
console.log('Server Response: ' + data);
})
关联数组(console.log):
var FiltersArray = [];
FiltersArray['category'] = this.category.val();
FiltersArray['Type1'] = this.type1.val();
FiltersArray['Type2'] = this.type2.val();
$.ajax({
type: POST,
url: 'something.php',
data: {
data: FiltersArray
}
}).done(function(data) {
console.log('Server Response: ' + data);
})
[类别:“6”、类型1:“998”、类型2:“20100100”]
请求:
var FiltersArray = [];
FiltersArray['category'] = this.category.val();
FiltersArray['Type1'] = this.type1.val();
FiltersArray['Type2'] = this.type2.val();
$.ajax({
type: POST,
url: 'something.php',
data: {
data: FiltersArray
}
}).done(function(data) {
console.log('Server Response: ' + data);
})
完整代码:
$(document).ready(function() {
var filters = {
category: $("#categoryInp"),
type1: $("#type1Inp"),
type2: $("#type2Inp"),
button: $("#FilterBtn"),
returnArray: function() {
var FiltersArray = [];
FiltersArray['category'] = this.category.val();
FiltersArray['Type1'] = this.type1.val();
FiltersArray['Type2'] = this.type2.val();
return FiltersArray;
},
sendRequest: function(type, URL) {
$.ajax({
type: type,
url: URL,
data: JSON.stringify(this.returnArray()),
beforeSend: function() {}
}).done(function(data) {
console.log('Server Response: ' + data);
}).fail(function() {
alert("An error occurred!");
});
}
};
filters.button.on('click', e => {
console.log(filters.returnArray());
filters.sendRequest('POST', 'Modules/Products.order.module.php');
});
});
JavaScript中没有关联数组这样的东西
- 有一些对象保存着
对数据key:value
- 有一些数组,当
名称为整数时,这是一种提供特殊行为的对象类型键
数据中传递一个对象时,jQuery会区分数组和其他类型的对象
如果您传递一个数组,它将不使用键:值
对执行任何操作,其中键
不是整数
为此使用普通对象而不是数组。
旁白:以大写字母开头的变量名传统上保留用于在JavaScript中存储构造函数。不要对其他类型的数据使用这种命名约定
创建对象时,只需收集所有数据会更容易:
var filters = {
category: this.category.val(),
Type1: this.type1.val(),
Type2: this.type2.val()
};
旁白
这将创建一个(似乎毫无意义)复杂的数据结构,您需要在PHP中以$\u POST['data']['category']
的形式访问它
你可能只想:
data: filters
旁白
这将发送JSON而不是表单编码的数据
如果您这样做,那么您还需要:
- 设置请求的
contentType
,以指示您正在发送JSON
所以你可能不想这样做。你的意思肯定是url:'something.php',data:FiltersArray
Hi@mplungjan,实际上不,数据需要一个值,我需要在那里发送一个数组。你真的想要一个对象:var FiltersObj={}
而不是数组。在这种情况下,
这是什么?@SASSY_-ROG-这不是JSON-不要相信W3Schools,它们很糟糕。