Prestashopの商品詳細を扱っています。製品ページでは、システムに定義されているすべての属性をjavascript配列に入れています。とき、私今JS変数に配列のキーの順番が変更されています。
{addJsDef attributeGroups = $groups}
:今
$groups = array(
'34' => array(//Here key is attribute group id
'default_attribute_id' => '105', // default attribute id of this group
'attributes' => array( // all the attribute with attr id => attr vaue
'105' => 'Small',
'115' => 'X-Large',
'110' => 'Medium'
),
),
.......
);
以下に示すようTPLファイルで変数をjavacriptするために割り当てられた「$グループ」変数を:製品を保持している
PHPの変数属性
を以下に示します。 "attributeGroups"の値をコンソール化すると、 "$ groups"変数のように属性IDの順序が失われます。コンソール内の値を以下に示す:var attributeGroups = {
34: {
'default_attribute_id': "105",
'attributes': { //Order of attributes id has changed
105: "Small",
110: "Medium",
115: "X-Large"
}
}
}
Iはまた、手動でforeachループを使用して、しかし、結果は同じである「attributeGroups」変数の値を挿入すると試みました。
属性IDの順序を変更したくありません。誰かが私にこれを助けることができますか? javascript変数に代入するときに属性IDの順序が変わる理由を示します。
注文が、これは正常です、guarantiedされていません。それに頼らないでください。固定注文が必要な場合は、arrayを使用してください。 – dfsq
お返事ありがとうございます。あなたの提案に従って、私はそれをオブジェクトから配列に変更しました。しかし、それでも結果は同じです。私はまた、コードをデバッグしている、値は正しい順序でJS変数に割り当てられますが、私はその変数を印刷するとき、それは間違った順序(問題に示されている)でデータを表示しています – Dhirender
配列は、違う。しかし、コードなしで伝えるのは難しいです。 – dfsq