Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Dynamischer Inhalt per Dropdown (https://www.delphipraxis.net/115157-%5Bphp%5D-dynamischer-inhalt-per-dropdown.html)

Brainstalker 6. Jun 2008 22:46


[PHP] Dynamischer Inhalt per Dropdown
 
Hallo, ich habe ein kleines Problem bei dem ich im Moment nicht weiterkomme.
Ich habe ein Formular mit einer Dropdown Box (Select), in der eine Stadt ausgewählt werden kann.
Zusätzlich habe ich darunter dann die Bezirke der Stadt zum auswählen.
Ich würde es gerne so machen, das die richtigen Bezirke angezeigt werden wenn ich eine andere Stadt wähle.
Die Bezirke und Städte werden mit PHP und SQL aus einer Datenbank gelesen.
Meine Ideen bisher waren:
1. Alle Bezirke mit PHP zu holen und mit Javascript die passenden anzuzeigen.
2. Bei einer Änderung der Dropdown Box die Seite neu zu laden und die passenden Bezirke mit PHP zu holen.

Das Problem bei 1. ist, das ziemlich viel Overhead geladen wird.
2. will nicht so recht, da das Formular eine andere Aufgabe hat und beim Submit dann die eigentliche Funktion ausgeführt wird.
Ich wollte, wenns geht komplett auf Javascript verzichten.

Wär nett wenn ihr mir ein bisschen helfen könntet.
Achja die Formular Variablen werden in einer Session bzw. Cookie gespeichert.

mkinzler 6. Jun 2008 22:59

Re: [PHP] Dynamischer Inhalt per Dropdown
 
Oder du verwendest Ajax

Valle 6. Jun 2008 23:00

Re: [PHP] Dynamischer Inhalt per Dropdown
 
Hallo Brainstalker, :hi:

also dadurch, dass du komplett auf JavaScript verzichten willst, bleiben natürlich nurnoch recht unschöne Lösungen. Aber man muss seine Ziele auch durchsetzen, also das sollte dich nicht hindern. :cyclops:

Einfachste Variante hast du ja bisher schon genannt: Du lässt erstmal alle Bezirke in einem Select anzeigen und dem User dann eins auswählen. Problem jetzt ist allerdings, dass ja nicht via Ajax nachladen kannst und auch nicht automatisch das Formular absenden kannst. (Also ohne Klick auf einen Button direkt nach der Auswahl absenden). Dann musst du eben einen Button dafür machen.

Was mir außerdem noch einfallen würde: Wie wäre es, wenn du statt einer Vorgabeliste den User selbst tippen lässt, so kannst du dir zumindest diese Arbeit sparen. Statt einem Select mit der riesigen Liste einfach ein Eingabefeld, wo der User dann seinen Bezirk und seinen Ort eingibt.

Eins verstehe ich ehrlich gesagt nicht so ganz.

Zitat:

Zitat von Brainstalker
2. will nicht so recht, da das Formular eine andere Aufgabe hat und beim Submit dann die eigentliche Funktion ausgeführt wird.

Dann musst du das eben ändern. Du machst dann eben einen richtigen "Wizard" aus deinem Webanwendung, so wie man sie von Installern oder anderen Webseiten kennt. Wenn du vielleicht etwas genauer sagst, was es denn werden soll, dann kann man eventuell noch bessere Vorschläge machen, denn solche Formulare oder Wizards gibt es ja in allen möglichen Ausführungen. (Aufwändig wie bei einer Registrierung auf einer Seite oder klein wie die Shoutbox in der DP)

Zitat:

Zitat von mkinzler
Oder du verwendest Ajax

Das ist zwar die beste Lösung, aber er wollte auf JavaScript verzichten. ;-)

Mit freundlichen Grüßen,

Valle

Brainstalker 7. Jun 2008 00:07

Re: [PHP] Dynamischer Inhalt per Dropdown
 
Das Ganze wird ein Suchformular. Man hat die Möglichkeit Suchwörter anzugeben und eine Stadt mit Bezirken.
Die Stadt wird in einem Select Feld ausgewählt und die Bezirke dann als Checkboxen darunter aufgelistet.
Das sind die Vorgaben, die ich leider auch nicht ändern kann.
Der Button des Formulars startet die Suche, wobei Suchwörter, Stadt und ausgewählte Bezirke in einer Session gespeichert werden.

Ich wollte JavaScript nicht benutzen, weil einige das ja deaktiviert haben. Andere Teile der Website benutzen bereits JavaScript, aber laufen im bei ausgeschaltetem JavaScript trotzdem noch halbwegs.
Wenn es so einfacher geht bin ich gerne bereit JavaScript einzusetzen.

DGL-luke 7. Jun 2008 01:01

Re: [PHP] Dynamischer Inhalt per Dropdown
 
Jaaa, du hast da tatsächlich ein Problem.
Du musst da fast zwei komplett unabhängige Masken bauen. Die eine klasisch, Stadt auswählen, "Weiter" klicken, Bezirk auswählen, Fertig.

per javascript (ajax) lässt du dann den "Weiter"-Submit-Button verschwinden, dafür kommt das Bezirk-dropdown und du lädst im OnClick-Ereignis die Bezirke nach.
das form-target wird dann so umgebaut, dass ein submit direkt zum schritt "fertig" geht.

damit hast du zwar einen hässlichen "reload"/Zwischenschritt falls JavaScript aus ist, aber das ist denke ich der einzige Weg, das ganze zu machen, ohne alle Bezirke zu übertragen.

Matze 7. Jun 2008 07:15

Re: [PHP] Dynamischer Inhalt per Dropdown
 
Zitat:

Zitat von DGL-luke
damit hast du zwar einen hässlichen "reload"/Zwischenschritt falls JavaScript aus ist, aber das ist denke ich der einzige Weg, das ganze zu machen, ohne alle Bezirke zu übertragen.

Jupp, das würde ich auch sagen. Wenn du die Lösung ohne JavaScript hast, dann ist das ganze mit JavaScript relativ schnell automatisiert.
Ich mache es bei mir genauso. Momentan noch ohne JS und ich habe gemerkt, dass der Hauptaufwand in der dem Teil der Umsetzung lag. Das wird bei dir vermutlich ähnlich sein, wenn du die Daten nicht dynamisch per AJAX (also JS) holen darfst.

Grüße

Brainstalker 7. Jun 2008 20:34

Re: [PHP] Dynamischer Inhalt per Dropdown
 
Hm ich hatte mir jetzt nochmal Gedanken gemacht.
Ich würde gern beim ändern der Stadt im Select Feld die ID in der Stadt in der Session speichern und die Seite neu laden.
Beim neu laden kann ich gleich die richtigen Bezirke laden.
Mein Problem ist jetzt nur wie kann ich das bewerkstelligen, da ja bei abschicken des Formulars die Suchergebnisse gelistet werden.

Also beim OnChange des Select Formular abschicken Seite neu laden.
Beim Klick auf den Suchen Button die Suchergebnisse anzeigen.

Wie kann ich das lösen? JavaScript ist von mir aus erlaubt.

Valle 8. Jun 2008 12:31

Re: [PHP] Dynamischer Inhalt per Dropdown
 
Mir würde da noch etwas einfallen: Frames.

:duck:

Ihr dürft mich jetzt hauen. *wegrenn*

Mit freundlichen Grüßen,

Valle

Brainstalker 8. Jun 2008 18:40

Re: [PHP] Dynamischer Inhalt per Dropdown
 
Ja mit Frames wäre das möglich, aber die möchte ich nicht benutzen.
Danke erstmal für die Tipps. Ich werde mal sehen wie ich da durchkomme.

Brainstalker 11. Jun 2008 18:29

Re: [PHP] Dynamischer Inhalt per Dropdown
 
Also ich hab das Problem jetzt gelöst, vorerst.
Ich lasse die Seite neu laden indem ich beim onchange des select eine JavaScript Funktion aufrufe.

Code:
var city = -1;
   
function selectWert(sObj) {
  with (sObj) return options[selectedIndex].value;
}

function LoadDistricts() {
  city = selectWert(document.getElementById('city'));
  self.location = "http://127.0.0.1/index.php?city=" + city;
}
Die Stadt ID wird übernommen und dann die Bezirke geladen. Ist zwar meiner Meinung nach nicht die Beste Lösung, aber es funktioniert. Und die Seite muss sowieso irgendwann überarbeitet werden und dann wird auch das System neu überdacht.

Nochmal danke für eure Hilfe.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz