Hur kan jag ta bort% 26 och% 3D från webbadressen?

När jag vill sortera produkter efter pris (låg till hög och hög till låg) fungerar inte min länk. Alternativvärdet är ”pris & product_list_dir = asc”, vilket kodar i ”price% 26product_list_dir% 3Dasc”. Hur kan jag avkoda den webbadressen?

Här är min kod:

<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> 

Kommentarer

  • Vad fungerar inte? Är " valt " inte ekade ordentligt? Finns det yttre "% 26 och% 3D " i HTML-värdets attribut så det står som ' < alternativvärde = " pris% 26product_list_dir% 3Dasc " > '? Ändras inte sorteringsordningen efter att du har valt en annan typ av sortering? Vänligen ange vad som inte fungerar så att vi kan hjälpa dig snabbare.
  • Jag kollade med Inspect Element och alternativvärdet upprepas korrekt. När jag klickar på alternativet, omdirigerar sidan till mysite.com/category.html?product_list_order=price%26product_list_dir%3Dasc. Men när jag ändrar "% 26 " och "% 3D " till " & " och " & " direkt i adressfältet, det fungerar. När jag klickar på alternativet verkar Magento koda det alternativvärdet i webbadress

Svar

Det ”s webbläsare som kodar värdet korrekt som förväntat. Kolla in https://perishablepress.com/stop-using-unsafe-characters-in-urls/ för säkra tecken.

Enligt min mening är det bästa sättet att göra det skulle bara vara att ställa in värdet till något som ”pris $ product_list_dir! asc” eller ”pris + dir-desc” eller bara ”price_desc” och analysera värdet av product_list_order i din kod. Andra alternativ är:

  • Dela upp menyn till två rullgardinsmenyer (product_list_order och product_list_dir)
  • Uppdatera url med javascript när rullgardinsvalet ändras

Kommentarer

  • Tack. Jag lade till onChange = " window.document.location.href = this.options [this.selectedIndex] .value; " för att välja och < skripttyp = " text / javascript " > jQuery (funktion ($) {$ (' välj '). på (' ändra ', funktion () {var url = $ (detta) .val (); om (url) {window.location = url;} returnera falsk;} );}); < / script > Nu fungerar det '. Tack

Svar

ändra detta echo __("price&product_list_dir=asc") till detta echo "price&product_list_dir=asc"

Kommentarer

  • Tack för din hjälp men det ' fungerar inte

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *