Ich habe zwei Arrays, bei denen jeweils eine Elternkategorie und eine Unterkategorie in einer Auswahlliste enthalten sind. Wie führe ich dazu, dass die Unterkategorie nur Elemente aus ihrer Elternkategorie anzeigt?
%Vor%müssen nur Automodelle anzeigen, die beispielsweise zu Automarken gehören
%Vor%Hier ist ein Beispiel für die Kategoriestruktur
%Vor%Wollte immer eine Übung mit verketteten Auswahlen mit Ajax machen, also, hier gehen wir;)
Dies ist ein vollständiges Plugin und sollte in wp-content/plugins/your-plugin-name
Ordner installiert werden. Besteht aus drei Dateien, dem Plugin selbst, der Javascript-Datei und dem Ajax Loader Image.
Installiere das Plugin und aktiviere es, und füge Folgendes in eine Designvorlagedatei ein :
%Vor% Passen Sie auch die beiden Aufrufe an wp_dropdown_categories
wie gewünscht an. Überprüfen Sie die Code-Kommentare für Details.
Die Dropdown-Liste der Unterkategorien wird als Reaktion auf Änderungen im Dropdown-Menü Kategorien geändert:
Warum nicht Objekte benutzen? Sie brauchen eine Fabrik, um Autos zu bauen.
eine großartige Referenz: Ссылка
Ich denke auch gerne daran, Objekte klein, einfach und so wenig wie möglich zu machen. Break funktioniert auf einfache Konzepte wie "make" und "show". Das macht sie austauschbar und erweiterbar. Sie können schließlich nach $ this- & gt; model- & gt;
fragenIch würde mich so annähern:
1 Objekt zum Organisieren des Datenmodells
ein anderer zum Erstellen Ihrer Zeilen // Controller
ein anderer zum Anzeigen // anzeigen
Um es so zu betrachten, schreiben Sie zuerst einige Funktionen, um zu verstehen, was Sie wissen wollen.
%Vor%Sie können feststellen, dass Sie die Daten anders abfragen müssen ... Mit anderen Worten, fragen Sie die db nach einer spezifischeren Frage, anstatt sie zu filtern, nachdem Sie sie erhalten haben. Vielleicht scheint das Filtern jetzt schneller zu sein, aber wie viele andere Fragen und Filterungen müssen Sie später machen?
Noch ein Kommentar: php ist mehr controllerisch und javascript fühlt sich besser an. Ich sage, löse die Probleme in ihrem am besten geeigneten und einfachsten Kontext. Bleib bei php zu diesem Thema.
Die einzige Möglichkeit, dies ohne AJAX zu tun, besteht darin, eine Liste aller Ihrer "Make" -Kategorien zu erhalten und dann ein Dropdown für jedes "Modell" jedes "Make" mit wp_dropdown_categories () mit dem Parameter child_of zu erzeugen. Verstecken Sie alle "Make" -Dropdowns beim Laden der Seite, fügen Sie einen Change-Event-Handler an das "Make" -Dropdown an und wenn es aufgerufen wird, zeigen Sie das entsprechende "Model" -Dropdown an, während Sie den Rest ausblenden. Das Anzeigen / Verbergen kann mit jQuery oder reinem JS erfolgen. Jedes Dropdown-Menü "Modell" muss eine eindeutige ID haben, die verwendet werden kann, um zu erkennen, zu welchem "Make" es gehört.