Уникальный url для каждого размера
Добрый день!
Подскажите пожалуйста в какую сторону копать.
Нужно что бы при выборе размера товара менялся url, ну и при переходе по этому урлу я попадал на страницу товара с уже выбранным размером.
Дай Бог здоровья тому кто поможет (:
Подскажите пожалуйста в какую сторону копать.
Нужно что бы при выборе размера товара менялся url, ну и при переходе по этому урлу я попадал на страницу товара с уже выбранным размером.
Дай Бог здоровья тому кто поможет (:
Комментарии: 2
Можно решить с помощью GET-параметров, это исключит дублирование страниц товаров, отличающихся друг от друга значением, например, выпадающего списка. А в нём уже (в выпадающем списке) проверяете наличие этого параметра, например, если используете pdoTools c fastParsers:
url: mysite.com/items/item100500?size=XXL
url: mysite.com/items/item100500?size=XXL
<label for="size">Размер:</label>
<select name="size" id="size">
<option value="S" [[#GET.size:is=`S`:then=`selected`:else=``]] >S</option>
<option value="M" [[#GET.size:is=`M`:then=`selected`:else=``]] >M</option>
<option value="L" [[#GET.size:is=`L`:then=`selected`:else=``]] >L</option>
<option value="XL" [[#GET.size:is=`XL`:then=`selected`:else=``]] >XL</option>
<option value="XXL" [[#GET.size:is=`XXL`:then=`selected`:else=``]] >XXL</option>
<option value="XXXL" [[#GET.size:is=`XXXL`:then=`selected`:else=``]] >XXXL</option>
</select>
Только добавьте проверку на JS поддержки window.history. Если поддерживает, меняете URL в адресной строке без перезагрузки страницы, если нет — просто window.location.href на новый адрес при изменении значения выпадающего списка.
Связями реалиpуется, выводить как-нибудь так, может потом как-нибудь зарефакторю в более приличное состояние)
<select name="options[color]" onchange="this.options[this.selectedIndex].value && (window.location = this.options[this.selectedIndex].value);">
[[msOptions?name=`color` &tplOuter=`@INLINE [[+rows]]`]]
[[!msProducts?
&parents=`0`
&master=`[[*id]]`
&link=`1`
&tpl=`tpl1`
&tplWrapper=`@INLINE [[+output]]`
&limit=`0`
&wrapIfEmpty=`0`
&cache=`1`
]]
</select>
tpl1[[!msOptions?
&name=`color`
&product=`[[+id]]`
&tplRow=`@INLINE <option value="/[[+uri]]" [[+selected]]>[[+value]]</option>`
&tplOuter=`@INLINE [[+rows]]`
]]
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.