Kun haluan lajitella tuotteita hinnan (matalasta korkeaan ja korkeasta matalaan) mukaan, linkkini ei toimi. Vaihtoehdon arvo on ”price & product_list_dir = asc”, joka koodaa kohtaan ”price% 26product_list_dir% 3Dasc”. Kuinka voin purkaa kyseisen URL-osoitteen?
Tässä on koodini:
<div class="toolbar-sorter sorter"> <label class="sorter-label" for="sorter"><?php /* @escapeNotVerified */ echo __("Sort by") ?></label> <select data-role="sorter" class="sorter-options selectpicker"> <?php $url = $_SERVER["REQUEST_URI"]; $path = strstr($url, "?"); ?> <option <?php if($path == "?product_list_order=price&product_list_dir=desc"): ?> selected="selected" <?php endif; ?> class="high-low" value="price&product_list_dir=desc"> Price - High to low </option> <option <?php if($path == "?product_list_order=price&product_list_dir=asc"): ?> selected="selected" <?php endif; ?> class="low-high" value="<?php /* @escapeNotVerified */ echo __("price&product_list_dir=asc") ?>"> Price - Low to high </option> </select></div>
kommentit
- Mikä ei toimi? Eikö valittu " -valinta " ole kaikunut oikein? Onko html: n arvoattribuutissa vieraita "% 26 ja% 3D ", niin että ' < vaihtoehto value = " price% 26product_list_dir% 3Dasc " > '? Eikö lajittelujärjestys muutu, kun valitset toisenlaisen lajittelutyypin? Määritä, mikä ei toimi, jotta voimme auttaa sinua nopeammin.
- Tarkistin Tarkasta elementti -toiminnolla ja vaihtoehdon arvo toistetaan oikein. Kun napsautan vaihtoehtoa, sivu ohjaa uudelleen osoitteeseen mysite.com/category.html?product_list_order=price%26product_list_dir%3Dasc. Mutta kun muutan "% 26 " ja "% 3D " osiin " & " ja " & " suoraan osoiteriville, se toimii. Vaikuttaa siltä, että kun napsautan vaihtoehtoa, Magento koodaa kyseisen vaihtoehdon arvon URL-osoitteeseen
Vastaa
Se ”selain, joka koodaa arvoa oikein odotetusti. Tutustu turvallisiin merkkeihin https://perishablepress.com/stop-using-unsafe-characters-in-urls/ .
Mielestäni paras tapa tehdä se olisi vain asettaa arvo arvoon ”price $ product_list_dir! asc” tai ”price + dir-desc” tai vain ”price_desc” ja jäsentää koodisi product_list_order arvon. Muita vaihtoehtoja ovat:
- Jaa valikko kahteen pudotusvalikkoon (product_list_order ja product_list_dir)
- Päivitä URL javascriptilla, kun pudotusvalinta muuttuu
kommentit
- kiitos. Lisäsin onChange = " window.document.location.href = this.options [this.selectedIndex] .value; " valitaksesi ja < komentotyyppi = " text / javascript " > jQuery (function ($) {$ (' select ') .on (' muuta ', function () {var url = $ (this) .val (); if (url) {window.location = url;} return false;} );}); < / script > Nyt se toimii '. Kiitos
vastaus
muuta tämä echo __("price&product_list_dir=asc")
tähän echo "price&product_list_dir=asc"
Kommentit
- Kiitos avustasi, mutta se ' eivät toimi