В PHP я следующий массив:Формат PHP массив хорошо отформатированный массива/объекта для JavaScript
$variation = [
attribute_label => "Choose your Color",
attribute_name => "pa_choose-your-color",
variations => [
"819" => "Red",
"820" => "Blue",
"821" => "Green"
]
];
Я посылаю этот массив JSON закодированный обратно на мой призыв Ajax.
После json_encode массив выглядит следующим образом:
Этот вид массива не очень удобно для зацикливания в JavaScript.
В цикле я добавляю атрибут_label к метке перед полем выбора и атрибут_имя к атрибуту идентификатора данных для поля выбора, варианты - это опции в поле выбора. Ключи вариантов не являются необязательными, они являются идентификаторами вариантов и используются для добавления к идентификатору данных опции в поле выбора. Я делал это раньше с помощью более легкого форматированного массива, но поскольку у продукта может быть несколько вариантов, мне пришлось изменить формат массива.
Пример HTML
<label>Choose your Color</label>
<select data-id="pa_choose-your-color">
<option data-id="818">Red</option>
<option data-id="819">Blue</option>
</select>
Должен ли я изменить формат массива PHP или есть способ петлевой корыта такого рода объектов в JavaScript?
Благодаря это работает отлично подходит для вариаций, но есть способ одного цикла attribute_label и attribute_name и после этого цикла вариации? – Swolschblauw
Я не понимаю ваш вопрос. С 'attribute_label' и' attribute_name' являются одиночными полями, а не массивами, что там делать? Или вы хотите зацикливать массив 'product_variations' и базовые' product_variations.variations' в одном цикле? –
Вы правы, так как сейчас существует не так много циклов с атрибутом_label и attribute_name, потому что есть только один атрибут. На данный момент я просто использую его как отдельные поля, позже я исправлю свой PHP так, чтобы его продукт мог иметь больше атрибутов. Спасибо за вашу помощь! – Swolschblauw