我有一個網站,輸入表格存在幾個部分。我將每個輸入保存在一個數組中,然後這些數組再次打包到一個數組中,以便每個部分都有自己的數組。數組中的數組閱讀
但是,我似乎有麻煩循環。它需要遍歷節數組,因爲這些「節」數組包含數據庫中應該插入的語言。
如何正確地循環它?
的Javascript
// Start Array to store each arrays
var preresult = [];
$(".accordeon-body").each(function() {
// DATA: Language Short
var language_short = $(this).data("id");
// Create Array from inputs, add language key
var array = $(this).find("textarea").serializeArray();
array.push({name: 'language', value: language_short});
// Create a JSON string from it
var string = JSON.stringify(array);
var object = {string};
preresult.push(object);
event.preventDefault();
});
var result = JSON.stringify(preresult);
結果再用一個AJAX POST sended。
ajax.php
// Get all POST Values
$string = $_POST['items'];
// Decode the Main JSON String
$objects = json_decode($string, true);
// For Loop the Objects String
for($i = 0; $i < count($objects); $i++){
$obj = json_decode($objects[$i]['string'], true);
// Foreach for every array
foreach($obj as $arr => $accord) {
// Foreach to get array Values
foreach($accord as $data) {
echo $data['agg_e_txt'];
}
}
}
然而,這種循環是行不通的。它返回錯誤Illegal String Offset
。但我不確定是否循環遍歷所需的節數組,否則我不知道將數據放入數據庫的位置。
我該如何得到想要的結果?
UPDATE 1:$對象打印
在請求的對象的可變打印
Array
(
[0] => Array
(
[string] => [{"name":"agg_e_txt","value":"Gutentag. Dies ist ein test!"},{"name":"agg_e_rec","value":"Keine"},{"name":"agg_e_spec","value":"Keine"},{"name":"language","value":"de"}]
)
[1] => Array
(
[string] => [{"name":"agg_e_txt","value":"Hello there! How are U?"},{"name":"agg_e_rec","value":"None"},{"name":"agg_e_spec","value":"None"},{"name":"language","value":"en"}]
)
[2] => Array
(
[string] => [{"name":"agg_e_txt","value":""},{"name":"agg_e_rec","value":""},{"name":"agg_e_spec","value":""},{"name":"language","value":"fr"}]
)
[3] => Array
(
[string] => [{"name":"agg_e_txt","value":""},{"name":"agg_e_rec","value":""},{"name":"agg_e_spec","value":""},{"name":"language","value":"es"}]
)
[4] => Array
(
[string] => [{"name":"agg_e_txt","value":""},{"name":"agg_e_rec","value":""},{"name":"agg_e_spec","value":""},{"name":"language","value":"pt-br"}]
)
[5] => Array
(
[string] => [{"name":"agg_e_txt","value":""},{"name":"agg_e_rec","value":""},{"name":"agg_e_spec","value":""},{"name":"language","value":"ch"}]
)
[6] => Array
(
[string] => [{"name":"agg_e_txt","value":""},{"name":"agg_e_rec","value":""},{"name":"agg_e_spec","value":""},{"name":"language","value":"ko"}]
)
[7] => Array
(
[string] => [{"name":"agg_e_txt","value":""},{"name":"agg_e_rec","value":""},{"name":"agg_e_spec","value":""},{"name":"language","value":"ru"}]
)
)
在for循環我提取第二JSON字符串。
更新2:變量$項目將返回 所以變量項目確實現在用4個陣列我需要返回子陣:
Array
(
[0] => Array
(
[name] => agg_e_txt
[value] =>
)
[1] => Array
(
[name] => agg_e_rec
[value] =>
)
[2] => Array
(
[name] => agg_e_spec
[value] =>
)
[3] => Array
(
[name] => language
[value] => ru
)
)
這4個價值觀是我需要一個查詢中值。該查詢是我的最終目標。我怎樣才能達到這個目標?我不想在彼此之後更新每一個價值。 (它必須是單個查詢)
'的print_r($對象);' – AbraCadaver
@AbraCadaver更新的問題 – Synthiatic
試圖取代這一立ne $ obj = json_decode($ objects [$ i] ['string'],true); with $ obj = $ objects [$ i] ['string']並選擇 – rahulsm