Wie kann ich% 26 und% 3D aus der URL entfernen?

Wenn ich Produkte nach Preis sortieren möchte (niedrig zu hoch und hoch zu niedrig), funktioniert mein Link nicht. Der Optionswert ist „price & product_list_dir = asc“, der in „price% 26product_list_dir% 3Dasc“ codiert ist. Wie kann ich diese URL dekodieren?

Hier ist mein 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> 

Kommentare

  • Was funktioniert nicht? Wird die " ausgewählte " nicht richtig wiedergegeben? Gibt es im value-Attribut des HTML-Codes ein fremdes "% 26 und% 3D ", so dass es wie < Optionswert = " Preis% 26product_list_dir% 3Dasc " > '? Ändert sich die Sortierreihenfolge nicht, nachdem Sie einen anderen Sortiertyp ausgewählt haben? Bitte geben Sie an, was nicht funktioniert, damit wir Ihnen schneller helfen können.
  • Ich habe mit Inspect Element überprüft, und der Optionswert wird ordnungsgemäß wiedergegeben. Wenn ich auf die Option klicke, leite die Seite zu mysite.com/category.html?product_list_order=price%26product_list_dir%3Dasc weiter. Aber wenn ich "% 26 " und "% 3D in " & " und " & " direkt in die Adressleiste, es funktioniert. Wenn ich auf die Option klicke, codiert Magento diesen Optionswert anscheinend in URL

Antwort

„s der Browser, der den Wert wie erwartet korrekt codiert. Überprüfen Sie https://perishablepress.com/stop-using-unsafe-characters-in-urls/ auf sichere Zeichen.

Meiner Meinung nach der beste Weg, dies zu tun wäre nur, den Wert auf „price $ product_list_dir! asc“ oder „price + dir-desc“ oder einfach „price_desc“ zu setzen und den Wert von product_list_order in Ihrem Code zu analysieren. Weitere Optionen sind:

  • Teilen Sie das Menü in zwei Dropdown-Menüs (product_list_order und product_list_dir)
  • Aktualisieren Sie die URL mit Javascript, wenn sich die Pulldown-Auswahl ändert

Kommentare

  • Vielen Dank. Ich habe onChange = " window.document.location.href = this.options [this.selectedIndex] .value; " hinzugefügt, um und auszuwählen < script type = " text / javascript " > jQuery (Funktion ($) {$ (' wählen Sie ') .on (' ' ändern, function () {var url = $ (this) .val (); if (url) {window.location = url;} return false;} );}); < / script > Jetzt funktioniert '. Vielen Dank

Antwort

Ändern Sie diese echo __("price&product_list_dir=asc") in diese echo "price&product_list_dir=asc"

Kommentare

  • Vielen Dank für Ihre Hilfe, aber ' funktioniert nicht

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.