Wie wird die Ausgabe einer Auswahlliste von der übergeordneten Liste abhängig gemacht?

8

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%     
Grundizer 01.04.2013, 18:12
quelle

3 Antworten

5

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:

  

verkettete Kategorien.php

%Vor%

ajax.js

%Vor%

ajax-loader.gif

    
brasofilo 04.04.2013, 14:14
quelle
2

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;

fragen

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

    
Ryan 07.04.2013 03:41
quelle
1

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.

    
Kita 01.04.2013 18:23
quelle

Tags und Links