[英]How to prepare / build Multidimensional Array from Javascript to send to PHP
我必須在PHP中從Ajax / Javascript接收如下數組:
$search = $_POST['query'];
$search = array(
'category1' => array('include' => array(93, 52),'exclude' => array(72)),
'category2' => array('include' => array(93, 52)),
'category3' => array('exclude' => array(72)),
'category4' => array()
);
在我的JavaScript頁面中,該數組是在發送之前由用戶操作構建的。 用戶選擇類別和項目來構建它。
例如,我的最終javascript數組必須如下所示:
my_array = '{
"category1":{
"include":["93","52"],
"exclude":["72"]
},
"category2":{
"include":["93","52"]
},
"category3":{
"exclude":["72"]
},
"category4":[]
}';
我嘗試了許多query.push,但是當選擇了許多類別時它不起作用。
我無法:
(例如:在“ category2”:{“ include”:[“ 93”,“ 52”]}中刪除'52',
描述:
可以將類別項目ID放在指定類別的“包括”部分或“排除”部分中(但不能同時放在兩者中)
類別下的項目(標簽)可以具有3個狀態(類):
這是jsfiddle鏈接: JSFIDDLE
謝謝。
在Javascript中,這是一個數組: []
,這是一個對象: {}
。 所以這就是我要在JS中創建數組的方式:
var my_array = [
{'category1':{'include':[1,2,3], 'exclude':[5]}},
{'category2':{'include':[3,4,5], 'exclude':[6,7,8]}},
{'category3':{'include':[1,2], 'exclude':[7]}}
];
這是演示如何將新值推入數組的小提琴: https : //jsfiddle.net/h15emr8j/
如果要將值推入數組的特定部分,請按以下步驟操作:
my_array[0].category1.exclude.push(100);
您可以按照以下邏輯來實現所需的目標:
var my_array={}; // creating empty array object
my_array.category1={}; // creating new filed in my_array
var include1 = new Array(); //creating include array for category 1
include1.push("93"); // push include values
include1.push("52");
var exclude1 = new Array(); // creating exclude array for category1, if you want
exclude1.push("72"); // push exclude values
my_array.category1.include=include1; // finally add it to category1
my_array.category1.exclude=exclude1;
alert(JSON.stringify(my_array)); // convert your object to JSON string
現在,如果要添加新值以包括和排除 category1 ,則只需要將這些值推入它們各自的數組中即可。
最簡單的解決方案可能是這樣的。
const jsonArray = [{
category: {
include: ["93", "52"],
exclude: ["72"]
}
..
}];
JS代碼
my_array = {"category1": {"include": ["93", "52"], "exclude": ["72"]}, "category2": {"include": ["93", "52"]}, "category3": {"exclude": ["72"]}, "category4":[]};
console.log(my_array);
$.post("array.php", {query: my_array}, function( data ) {
console.log(data);
}, "text");
PHP代碼
<?php
$search = $_POST['query'];
print_r($search["category1"]["exclude"]);
因此,這里有一些好東西要學習。 在javasript中初始化數組:
var arr = ['include','exclude'];
arr['include'] = [];
arr['exclude'] = [];
接下來,我們需要使用ajax將數組發送到php腳本:
var jsonString = JSON.stringify(arr);
$.ajax({
url: 'myscript.php',
type: 'POST',
data:{
arr: jsonString
},
success: function(result){
//continue with results
},
error: function(result){
//continue with results
}
});
最后在php端:
$arr = json_decode($_POST['arr']);
//code to execute
echo json_encode($arr);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.