monsen: Problem mit zwei Selectlisten in einem Formular

Hallo,

ich hoffe ich werde jetzt nicht wg. Crosspostings gesteinigt. Ich habe die nachfolgende Frage kürzlich bei phpforum.de gestellt, das war natürlich deplatziert...deshalb hier nochmal:

ich habe ein Formular, indem sich zwei Selectlisten befinden. Wenn ich in die erste Liste eine Auswahl treffe
und daraufhin in die zweite Selectliste klicke (was nicht das Ziel ist, aber durchaus passieren kann) habe ich
in jeder Liste jeweils eine (markierte) Auswahl.

Beim abschicken des Formulars werden dann beide Werte mitgeschickt. Das möchte ich aber nicht. Wurde in einer
der Listen ein Auftrag ausgewählt, kann dies auch nicht mehr rückgängig gemacht werden (z.B. durch erneuten
Klick).

Könnt ihr mir sagen, was ich machen muss, dass immer nur ein Auftrag ausgewählt ist (und bei Klick in die zweite
Liste die erste Auswahl aufgehoben wird?)

Vielen Dank für eure Hilfe
Grüße

  1. Hi.
    Füge beiden Selects noch ein onChange hinzu, welches die Auswahl des jeweils anderen Selects auf einen hoffentlich vorhandenen Standardwert (z.B. "Bitte auswählen") setzt.

    z.B
    <form name="formular" method="post">
    <select name="select1" onChange="document.forms.formular.select2.selectedIndex=0">
    <option value="">Bitte auswählen</option>
    <option value="auswahl 1">Auswahl 1</option>
    <option value="auswahl 2">Auswahl 2</option>
    <option value="auswahl 3">Auswahl 3</option>
    </select>

    <select name="select2"onChange="document.forms.formular.select1.selectedIndex=0">
    <option value="">Bitte auswählen</option>
    <option value="auswahl 1">Auswahl 1</option>
    <option value="auswahl 2">Auswahl 2</option>
    <option value="auswahl 3">Auswahl 3</option>
    </select>
    </form>

    mfg
    Knusperklumpen

    P.S. Was ist die Sinnhaftigkeit?

    1. Danke für die Antwort. Um JS komme ich wohl nicht rum, oder?

      P.S. Was ist die Sinnhaftigkeit?

      Im ersten Selectfield (dyn aus DB befüllt) steht eine Gesamtmenge an Aufträge zur Auswahl.
      Über einen Button kann ein Auftrag zum Selectfeld hinzugefügt werden.
      Diese Auswahl (z.B. 4 aus 30 Aufträgen) erscheint dann im 2ten Selectfeld (auch dyn aus DB).

      Im 2ten Selectfeld kann dann dann nach oben bzw. unten verschoben oder auch "removed" werden (zurück in Selectfeld1).
      Letztendlich soll eine Reihenfolge festgelegt und Visualisiert werden.

      1. Danke für die Antwort. Um JS komme ich wohl nicht rum, oder?

        In dem Fall wohl nicht.

        Wie regelst du das Andere ?? Läuft das alles über Seitenreloads, also wenn du Aufträge in Selectfeld 1 wählst und den Button drückst lädt sich die Seite neu und Selectfeld 2 hat dann auch Inhalt.
        Das geht ja noch aber wie regelst du das Hoch- und Runterschieben in Selectfeld 2?? Das muss ja auch Javascript sein ... oder??
        Das klingt nach ner Ajax-Geschichte ... wäre zumindest Ajax-würdig.

        mfg
        Knusperklumpen

        1. Wie regelst du das Andere ?? Läuft das alles über Seitenreloads, also wenn du Aufträge in Selectfeld 1 wählst und den Button drückst lädt sich die Seite neu und Selectfeld 2 hat dann auch Inhalt.
          Das geht ja noch aber wie regelst du das Hoch- und Runterschieben in Selectfeld 2?? Das muss ja auch Javascript sein ... oder??
          Das klingt nach ner Ajax-Geschichte ... wäre zumindest Ajax-würdig.

          Ajax?? Wir wollen doch mal nicht übertreiben ;o). Nein daran habe ich mich (noch) nicht richtig rangetraut, wobei vermutlich manche Sachen leichter zu realisieren wären als (wie bisher) mit PHP und SQL.

          Zur Funktionalität:
          Bei Klick auf einen Button lädt sich die Seite neu. Dabei werden 2 DB-Abfragen gestartet, die die Selectfelder befüllen.

          In der Tabelle wird über 2 Felder die Maschine (an der der jew. Auftrag laufen soll) und die Reihenfolge der Aufträge gespeichert.

          Bei Klick auf "add" werden diese zwei Felder (z.B. Maschine 4, Position 8) befüllt. Bei "up" werden 2 Datensätze geupdatet (der aktuelle und der, der darüber ist (position-1), usw.

          Allerdings stosse ich schon langsam an Grenzen. Z.b. sollen gleiche Aufträge zu Einem zusammengefasst und in Summe dargestellt werden. Das an sich war kein Problem, aber nun sollen abgearbeitete Aufträge automatisch gelöscht werden damit die nächsten nachrücken können. Wie ich meinem Programm nun klarmachen soll welche Aufträge zusammengehören und welche nicht wird noch interessant...

          Lg
          monsen