Hoe kan ik% 26 en% 3D van de url verwijderen?

Als ik producten wil sorteren op prijs (laag naar hoog en hoog naar laag), werkt mijn link niet. Optiewaarde is “prijs & product_list_dir = asc”, die codeert in “prijs% 26product_list_dir% 3Dasc”. Hoe kan ik die url decoderen?

Hier is mijn code:

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

Reacties

  • Wat werkt niet? Wordt de " geselecteerde " niet correct weergegeven? Is er externe "% 26 en% 3D " in het waarde-attribuut van de html, dus het zegt als ' < option value = " prijs% 26product_list_dir% 3Dasc " > '? Verandert de sorteervolgorde niet nadat u een ander type sortering heeft geselecteerd? Geef aan wat niet werkt, zodat we u sneller kunnen helpen.
  • Ik heb het gecontroleerd met Inspect Element en de optiewaarde wordt correct weergegeven. Wanneer ik op de optie klik, wordt de pagina omgeleid naar mijnsite.com/category.html?product_list_order=price%26product_list_dir%3Dasc. Maar als ik "% 26 " en "% 3D " in " & " en " & " rechtstreeks in de adresbalk, het werkt. Het lijkt erop dat, wanneer ik op de optie klik, Magento die optiewaarde in url codeert

Answer

Dit is de browser die de waarde correct codeert zoals verwacht. Bekijk https://perishablepress.com/stop-using-unsafe-characters-in-urls/ voor veilige karakters.

Naar mijn mening de beste manier om dit te doen zou gewoon zijn om de waarde in te stellen op zoiets als “prijs $ product_list_dir! asc” of “prijs + dir-desc” of gewoon “price_desc” en de waarde van product_list_order in uw code te analyseren. Andere opties zijn:

  • Splits het menu op in twee vervolgkeuzemenus (product_list_order en product_list_dir)
  • Werk de url bij met javascript wanneer de pulldown-selectie verandert

Reacties

  • Bedankt. Ik heb onChange = " window.document.location.href = this.options [this.selectedIndex] .value; " toegevoegd om te selecteren en < scripttype = " text / javascript " > jQuery (function ($) {$ (' selecteer '). op (' wijziging ', functie () {var url = $ (this) .val (); if (url) {window.location = url;} return false;} );}); < / script > Nu ' werkt. Bedankt

Antwoord

verander dit echo __("price&product_list_dir=asc") naar dit echo "price&product_list_dir=asc"

Reacties

  • Bedankt voor je hulp, maar het is ' werkt niet

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *