Felix Bucherer: mehrere Buttons in einem FORM

hallo zusammen ;)

mein problem ist das folgende:

Ich zeige eine Liste mit zB. Häusern an und möchte zu jedem Element
in der Liste einen Button haben, mit dem man die Daten des Hauses
ändern oder das Haus löschen kann. Also:

---------------------------------------------
Hausnummer: 1
Bewohner: Stefan Raab
Offene Stromrechnung: 200
[löschen] [ändern]
---------------------------------------------
Hausnummer: 2
Bewohner: Karl Moik
Offene Stromrechnung: 10
[löschen] [ändern]
---------------------------------------------
Hausnummer: 3
Bewohner: Fancy & Mosi
Offene Stromrechnung: 40
[löschen] [ändern]
---------------------------------------------

Angenommen das obige Beispiel enthält nur ein Form:
dann habe ich ja mehrere Buttons (sechs Stück), von denen jeder eine andere
Aktion auslösen soll. (also nicht einfach sechs SUBMIT buttons)

Gibt es einen Trick, damit ich alle Häuser mit nur *einem* Formular verwalten kann?
Oder muss ich für jedes Haus ein eigenes Formular machen?

ergebensten Dank & greetings
Felix

  1. Hi Felix,

    Ich würde an deiner mehrere einzelen Forms (für jedes Haus) benutzen. Mit einem input type=hidden kannst du noch einen Index übergeben, damit dein Script weiß welches Haus ausgesucht wurde.

    Wenn du nur eine Form hast, werden alle Informationen an das Script übergeben. D.h. wenn du mehrere Buttons hast, musst du trotzdem einen Index übergeben, damit dein Script weiß welches Haus er bearbeiten muss. Das ginge dann mit input type=button onClick=Javascript_function(index). D.h. du übergibst den Index an eine JavaScript function, der kann dann den Query String für deinen CGI Script zusammenbasteln, oder auch einfach die Form submitten und den entsprechenden Index mitschicken.

    Gruß
    Cruz

    1. Hi Felix,

      Ich würde an deiner mehrere einzelen Forms (für jedes Haus) benutzen. Mit einem input type=hidden kannst du noch einen Index übergeben, damit dein Script weiß welches Haus ausgesucht wurde.

      Wenn es nicht auf die Datenmenge ankommt (Intranet oder so), könnte man auch für jeden Button ein einzelnes Formular generieren.
      Die Daten würden äußerlich lediglich ausgegeben, und in jedem Form nochmal als INPUT TYPE=HIDDEN übergeben. Wie gesagt, bei dieser Lösung ist die Datenmenge etwas höher. Dafür muss man nicht über Javascript o.ä. zwischen den beiden Buttons unterscheiden.

      Ciao
      H-Man

  2. Hallo Felix

    Warum machst du es nicht so?


    Hausnummer: 1
    Bewohner: Stefan Raab
    Offene Stromrechnung: 200
    ( ) löschen  ( ) ändern

    Hausnummer: 2
    Bewohner: Karl Moik
    Offene Stromrechnung: 10
    ( ) löschen  ( ) ändern

    Hausnummer: 3
    Bewohner: Fancy & Mosi
    Offene Stromrechnung: 40
    ( ) löschen  ( ) ändern

    [Formular absenden]

    Will meinen: Innerhalb des Formulars Radio-Buttons anbieten, und dann einen zentralen Submit-Button, um die ausgewählte Option auszufuehren.

    viele Gruesse
      Stefan Muenz

  3. Hallo Felix!

    Ich bin mir zwar nicht sicher, aber vielleicht ist es das was du suchst.

    Erstelle ein Formular, mit mehreren Submit-Buttons.

    <input type=submit name="delraab" value="Raab löschen">
    <input type=submit name="chgraab" value="Raab ändern">
    <input type=submit name="delmoik" value="Moik löschen">
    <input type=submit name="chgmoik" value="Moik ändern">

    Im CGI-Script fragst du dann die Buttons ab.

    if ($FORM{'delraab'} ne "") {...}
    if ($FORM{'chgraab'} ne "") {...}
    if ($FORM{'delmoik'} ne "") {...}
    if ($FORM{'chgmoik'} ne "") {...}

    Viele Grüße
    Harald

  4. Hallo Leute

    euch allen: herzlichen Dank für die rasche Hilfe ;)

    der "Chef" hat das Rennen gemacht: ich werde den Vorschlag mit den
    Radio-Buttons von Stefan übernehmen.

    falls es euch interessieren sollte, noch kurz meine Entscheidungsgrundlagen:

    • nur ein Form
      ich traue ja den browsern nicht so recht, sprich: wenn ich mit 234 forms
      in einem html-dokument daher komme, könnte sich netscape evtl. verwirrt fühlen ;)

    • hübsch anzuschauen
      ausserdem ist es natürlich viel eleganter, wenn nicht in jeder zeile
      zwei dicke buttons prangen sondern nur kleine radio's

    danke nochmals & have a nice weekend
    felix