私は入力フォームがいくつかのセクションから存在するサイトを持っています。私はすべての入力を配列に保存し、それらの配列は再び配列にパックされるので、すべてのセクションは独自の配列を持ちます。アレイの配列
しかし、私はループスルーに問題があるようです。これらのセクション配列には、データベースに挿入する必要のある言語が含まれているため、セクション配列をループする必要があります。
どうすれば正しくループできますか?
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ではれます。
// 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'];
}
}
}
ajax.php
しかし、このループが機能していません。エラーIllegal String Offset
を返します。しかし、必要なセクション配列をループするかどうかはわかりません。それ以外の場合は、データベースに格納する場所がわかりません。
希望の結果を得るにはどうすればよいですか?
UPDATE 1:$オブジェクトは、私は第二JSON文字列を抽出するために、ループでは
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"}]
)
)
要求でオブジェクト変数の印刷を
を印刷します。
UPDATE 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); $ obj = $ objects [$ i] ['string']とチェック – rahulsm