![]() |
Internetportal: Ähnliches Formular wie ein Treiberdownload
Hallo Leute,
ich entwickele gerade ein Internetportal mit PHP. Dort habe ich unter Anderem ein Formular wo ich sinngemäß eingeben kann: <Mandant> <Monat> Daten Laden <Mandant> ist eine vorgefertigte Liste, welche ich per PHP erstelle und in einer Combobox darstelle. Der Monat hingegen ist im Moment aber ein frei definierbares Textfeld, welches ich dann validieren muss etc. ... Schöner wäre es nun, wenn ich - ähnlich wie bei Downloadseiten von Treibern - 2 Listboxen hätte. Links die für den Mandanten, rechts die für die verfügbaren Monate. Und je nachdem, welchen Mandant ich auswähle, erhalte ich dann rechts die entsprechenden Monate zur Verfügung. Nun zu meiner Frage: Wie mache ich sowas? ... Das einzige was ich mir so vorstellen kann, wäre doch, dass ich das per JavaScript löse und der HTML-Seite fixe Arrays mit den Zuordnungen mitgebe, oder? Aber die Lösung finde ich persönlich arg unschön (ma ganz zu schweigen davon, dass ich von JavaScript kaum bis gar keine Ahnung habe) und evt. gibt es ja eine schönere Lösung. Danke im Voraus cu Patrick |
Re: Internetportal: Ähnliches Formular wie ein Treiberdownlo
Wo kommen die Daten denn her? Du kannst doch auch mit Javascript eine Datenbank abfrage machen oder geht das nicht?
|
Re: Internetportal: Ähnliches Formular wie ein Treiberdownlo
Zitat:
Aber ich würde eigentlich ungern via JavaScript auf die Datenbank zugreifen, weil die Abfragen und Co. dann doch mehr oder weniger sichtbar für jedermann sind, oder? Wenn dann möchte ich eher diese Logik in PHP auslagern und nur noch das Ergebnis im Browser selbst halten, so dass der User nicht sieht, woher das Ergebnis kommt. ... Aber die Frage bezog sich ja ganz generell auf die Vorgehensweise, evt. gibt es ja auch noch eine andere Möglichkeit, so etwas zu realisieren, als mit JavaScript? |
Re: Internetportal: Ähnliches Formular wie ein Treiberdownlo
Nachtrag:
Ich überleg z.B. gerade in die Richtung, dass ich das "OnChange"-Event (falls es sowas dort gibt) via JavaScript abfange und dann jedes mal die Seite mit den entsprechenden Parametern neu lade: z.B. Start der Seite: daten.php -> (Listet alle verfügbaren Mandanten auf) Auswahl des Mandanten: daten.php?mandant=1 -> Listet alle Mandanten auf, markiert den 1. und listet dann alle verfügbaren Monate auf ... So hätte ich doch quasi die komplette Logik weiterhin in PHP und JavaScript bräuchte nur noch das OnChange Event abfangen |
Re: Internetportal: Ähnliches Formular wie ein Treiberdownlo
Zitat:
Und zwar lädst du im OnChange der Combo die 2. Combo nochmal. |
Re: Internetportal: Ähnliches Formular wie ein Treiberdownlo
Nur zur Info:
Hab es jetzt übrigens so gelöst, wie ich es weiter oben angedeutet hatte: Sprich, das Formular ruft so gesehen sich selbst auf und weiß dann wie es sich selbst darzustellen hat. (Mal mit Monaten, mal ohne etc.) ... Das mit AJAX, JavaScript und Co. funktioniert bei mir aus div. Gründen nicht so recht, da das Portal aus mehreren Ebenen besteht und ich nicht mehr so ohne weiteres in den Header der HTML-Seite komme. Ausserdem müsste ich dann aufgrund div. Abfragemechanismen ein Teil der Programmlogik in das JavaScript auslagern, was natürlich absolut gar nicht geht. ... Aber was solls, so funktionierts ja auch. :) |
Re: Internetportal: Ähnliches Formular wie ein Treiberdownlo
Der Grund warum AJAX und Co. nicht funktionieren ist einfach schlechtes Applikations-Design.
Wenn du deine Applikation schoen aufgebaut hast/haettest gibts doch sicherlich eine Methode im Model des Mandanten, welches die verfuegbaren Monate ausgibt. So, diese Methode verknpuefst du mit einer Action im Controller, so dass du eine URL aufrufen kannst, dieser URL eine Mandanten-ID mitgibst und die verfuegbaren Monate rauskriegst. Die View ist dann dafuer zustaendig, das Ganze in JSON oder XML auszugeben. Dann musst du nur noch den Request per JS starten und das XML verarbeiten, was dank heutiger JS-Frameworks bei weitem keine Kunst mehr ist. Glaub mir - wenn du vor Fertigstellung deiner Applikation sagen musst, dass AJAX und Co nicht funktionieren weil du "nicht mehr so ohne weiteres in den Header der HTML-Seite" kommst, ist es definitiv nochmal an der Zeit zu ueberlegen, ob du beim bisherigen Entwickeln auch wirklich ueberlegt hast. Just my 2 Cents. @Luckie: mit JS Datenbankabfragen stellen funktioniert - ist aber nur zu empfehlen wenn man eine sehr stark ausgepraegte masochistische Ader hat. Der uebliche Weg ist es eben, dies ueber AJAX-Requests nachzuladen, zumal es auch die Angriffsflaeche signifikant verringert. Greetz alcaeus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz