Esmy: Problem mit Formularwertübergabe an mysql-Datenbank

ich hab das Problem, dass ich im Formular, welches die Einträge an die Datenbank übergibt, das Feld "Kategorie" so haben möchte, dass man die Kategorie sowohl über eine Selektion auswählen kann (welche er aus der Datenbank lädt) also auch bei Fehlen der benötigten Kategorie eine neue eintragen kann.
Nun gibt es beim Formular nur die Möglichkeit "selected" oder "text" und ich hab keinen Weg gefunden, die beiden zu verknüpfen - oder gibt es hier ne Lösung?

Ich hab es auf jeden Fall so machen wollen, dass ich neben dem Selektionsfeld auch ein Texteingabefeld habe, welche beide den Kategorienname an die Datenbank übergeben sollen. Also wenn man beim ersten Feld keinen Eintrag setzt, übergibt er das zweite Feld und umgekehrt. Dummerweise überschreibt er bei der Datanbankübergabe immer den Wert des ersten Feldes mit dem vom zweiten. D.h. wenn ich im zweiten Feld keinen Eintrag setze übergibt er es leer (obwohl im ersten eine Kategorie gewählt wurde)
Wie kann man das Problem lösen?

Gruß
Esmy

  1. hi,

    Nun gibt es beim Formular nur die Möglichkeit "selected" oder "text" und ich hab keinen Weg gefunden, die beiden zu verknüpfen - oder gibt es hier ne Lösung?

    nein, mit reinem HTML nicht.
    vor einiger zeit hat mal jemand den link zu einem active-x-ersatz für eine solche "combobox" genannt - active-x halte ich persönlich aber für eine eklige lösung. (bei interesse dürfte der link im archiv recherchierbar sein.)

    D.h. wenn ich im zweiten Feld keinen Eintrag setze übergibt er es leer (obwohl im ersten eine Kategorie gewählt wurde)
    Wie kann man das Problem lösen?

    benenne die beiden felder um formular mit unterschiedlichen namen, so dass beide (ggf. leeren) werte übertragen werden.
    entscheide dann erst script-seitig, welcher von beiden der DB zuzuführen ist.

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
    1. Hi wahsaga,

      nein, mit reinem HTML nicht.
      vor einiger zeit hat mal jemand den link zu einem active-x-ersatz für eine solche "combobox" genannt - active-x halte ich persönlich aber für eine eklige lösung. (bei interesse dürfte der link im archiv recherchierbar sein.)

      nein danke, kein Interesse;)

      benenne die beiden felder um formular mit unterschiedlichen namen, so dass beide (ggf. leeren) werte übertragen werden.
      entscheide dann erst script-seitig, welcher von beiden der DB zuzuführen ist.

      Was meinst du mit "erst scriptseitig"?
      So was wie: wenn Feld mit "Name1" angegeben, übergib diesen als "kategorie" an Datenbank, andernfalls nimm "Name2"?

      Aber wie ich das mit dem Formular verknüpfen soll, weiß ich nicht. Ich steh noch am Anfang von PHP-Mysql....(in den Büchern, die ich dazu hab, steht sowas nicht drin;)

      Gruß
      Esmy

      1. hi,

        Was meinst du mit "erst scriptseitig"?
        So was wie: wenn Feld mit "Name1" angegeben, übergib diesen als "kategorie" an Datenbank, andernfalls nimm "Name2"?

        wenn ein wert aus dem selectfeld übergeben wurde, benutzt du dieses für deinen neuen eintrag (ich nehme an, es geht um einen solchen?) - andernfalls nimmst du den neuen kategorie-wert aus dem textfeld, und legst damit erst mal einen datensatz in deiner kategorie-tabelle an, bevor du den weiteren eintrag machst.

        Aber wie ich das mit dem Formular verknüpfen soll, weiß ich nicht. Ich steh noch am Anfang von PHP-Mysql....(in den Büchern, die ich dazu hab, steht sowas nicht drin;)

        solche bücher sind ja auch dazu da, den umgang mit der syntax an ein paar grundlegenden beispielen zu erklären.
        für weiterführende aufgaben wie diese muss ein programmierer dann schon selbst eine entsprechende logik für den ablauf entwickeln.

        gruß,
        wahsaga

        --
        "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
        1. hi

          wenn ein wert aus dem selectfeld übergeben wurde, benutzt du dieses für deinen neuen eintrag (ich nehme an, es geht um einen solchen?) - andernfalls nimmst du den neuen kategorie-wert aus dem textfeld, und legst damit erst mal einen datensatz in deiner kategorie-tabelle an, bevor du den weiteren eintrag machst.

          oh je! Ich glaub ich trag einfach jede neue Kategorie, die mir und irgendjemandem sonst in den Sinn kommt, direkt in die Datenbank ein;)(Kleiner Scherz am Rande)
          Nein, ich werd mich da mal durchprobieren - kann sich nur um Jahre handeln.

          Vielen Dank auf alle Fälle für deine Hilfe!
          Esmy

          1. Hello,

            oh je! Ich glaub ich trag einfach jede neue Kategorie, die mir und irgendjemandem sonst in den Sinn kommt, direkt in die Datenbank ein;)(Kleiner Scherz am Rande)
            Nein, ich werd mich da mal durchprobieren - kann sich nur um Jahre handeln.

            Du musst das einfach mal vom Standpunkt der Rechte her betrachten. Wenn jeder zu jeder Zeit Kategorien hinzufügen könnte, hättest Du bald Chaos in Deiner Datenbank. Kategorisierung betreibt man ja deshalb, weil man Ordnung schaffen und halten möchte. Da muss man sich (nicht nur nach DIN ISO 9000ff *g*) schon genau überlegen, welche Prüfverfahren das Hinzufügen einer Überordnung erfordert.

            - Groß-Kleinschreibung
              - Bestimmte Begriffe
              - keine Doubletten   (das ist besonders schwer zu handhaben)
              - Userrechte
              - Integrität der Daten und Referenzen
                (Wann darf eine Kategorie benutzt, wann wieder gelöscht werden?)
              - Wird die Kategorie selber Schlüssel, oder wird sie durch einen
                eigenen Primary Key repräsentiert? Das würde sehr leicht Sprachversionen ermöglichen
              _ ...

            Harzliche Grüße aus http://www.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
            1. Hi Tom,

              ganz so dramtisch wäre es nicht - da nur ein kleiner ausgewählter Kreis von Mitwirkenden AdminRechte für die Datenbank bekommt.
              Die Ordnung ist in den Kategorien zweitrangig. Es geht nur um die Möglichkeit, dass der Anwender bei seiner Suche das Ganze durch voreingestellte Kategorien eingrenzen kann.
              Das, was ich vorhabe soll nur die Dateneingabe erleichtern. Das heißt, man selectiert aus eine Liste eine Kategorie und wenn noch keine da ist, legt man eine an. Da die Datenbank noch im Aufbau ist und oft eine neue Kategorie erforderlich ist, ist die Maßnahme sinnvoll.

              Gruß
              Esmy

              Du musst das einfach mal vom Standpunkt der Rechte her betrachten. Wenn jeder zu jeder Zeit Kategorien hinzufügen könnte, hättest Du bald Chaos in Deiner Datenbank. Kategorisierung betreibt man ja deshalb, weil man Ordnung schaffen und halten möchte. Da muss man sich (nicht nur nach DIN ISO 9000ff *g*) schon genau überlegen, welche Prüfverfahren das Hinzufügen einer Überordnung erfordert.

  2. Hello,

    betrachtet man die Staffelung der Vorgangsstufen, so ist die freie Eingabe ja auf jeden Fall erlaubt. Wenn man nun eine Nachschlagemöglichkeit haben will, dann mus man eben ein eigenes kleines Formular dafür bauen, dieses per Postbutton aus dem Hauptformular heraus aufrufen.

    Drückt jemand den Postbutton, werden alle bis dato erfassten Werte unter der ID des Formulars in der Session gespeichert, und das Unterformular an den Client geschickt. Der kann nun auswählen und einen Wert bestätigen, oder auch keinen. Das Unterformular muss wissen, welches sein Hauptfimular ist und welches Aktion (Wert zurückliefern, Refresh only) es im HF auslösen muss. Selbstverständlich wird das Zum Abgleuch auch in der Session gespeichert, damit der Client nur Aktionen auslösen kann, die erlaubt sind.

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau