Frage zum <form>

Ador

Erfahrenes Mitglied
Hallo,
folgendes möchte ich realisieren.
Eine Art Speisekarte, wo die verschiedenen Speisen aufgelistet sind und neben jeder Speise soll ein einfaches Auswahlmenü sein, worübe man die Menge (1-10) auswählen kann.
Nun habe ich praktisch n <form>s erstellt (pizza1, pizza2...) Kann ich nun irgendwie einen "submit" Button erstellen, der alle n <form> weiterleitet?
Also das man nur 1 submit Button am ende der Seite für alle ausgewählten sachen klickt?

mfg

Code:
    <div id="bestellformular">
    
    <h1>Vorspeisen:</h1>
    
    	<li>
    	020  pizza 1: bla bla bla
    	</li>
        <div id="auswahl">
            <form action = "uc04.php" method = "post">
                Menge
                <select name="pizza1">
                    <option value="0" selected> 0 </option>
                    <option value="1"> 1 </option>
                    <option value="2"> 2 </option>
                    <option value="3"> 3 </option>
                    <option value="4"> 4 </option>
                    <option value="5"> 5 </option>
                    <option value="6"> 6 </option>
                    <option value="7"> 7 </option>
                    <option value="8"> 8 </option>
                    <option value="9"> 9 </option>
                    <option value="10"> 10 </option>
                </select>            
            </form>
        </div> <!--ENDE auswahl-->
        
        <div id="separator"></div>
        
    	<li>
 021  pizza 2: bla bla bla
    	</li>
        <div id="auswahl">
            <form action = "uc04.php" method = "post">
                Menge
                <select name="pizza2">
                    <option value="0" selected> 0 </option>
                    <option value="1"> 1 </option>
                    <option value="2"> 2 </option>
                    <option value="3"> 3 </option>
                    <option value="4"> 4 </option>
                    <option value="5"> 5 </option>
                    <option value="6"> 6 </option>
                    <option value="7"> 7 </option>
                    <option value="8"> 8 </option>
                    <option value="9"> 9 </option>
                    <option value="10"> 10 </option>
                </select>            
            </form>
        </div> <!--ENDE auswahl-->
        
        <div id="separator"></div>
        
            	<li>
    	 020  pizza 3: bla bla bla

    	</li>
        <div id="auswahl">
            <form action = "uc04.php" method = "post">
                Menge
                <select name="pizza3">
                    <option value="0" selected> 0 </option>
                    <option value="1"> 1 </option>
                    <option value="2"> 2 </option>
                    <option value="3"> 3 </option>
                    <option value="4"> 4 </option>
                    <option value="5"> 5 </option>
                    <option value="6"> 6 </option>
                    <option value="7"> 7 </option>
                    <option value="8"> 8 </option>
                    <option value="9"> 9 </option>
                    <option value="10"> 10 </option>
                </select>            
            </form>
        </div> <!--ENDE auswahl-->
        
        <h1>Hauptgerichte:</h1>
        
            	<li>
030 Eis: bla bla bla
    	</li>
        <div id="auswahl">
            <form action = "uc04.php" method = "post">
                Menge
                <select name="eis1">
                    <option value="0" selected> 0 </option>
                    <option value="1"> 1 </option>
                    <option value="2"> 2 </option>
                    <option value="3"> 3 </option>
                    <option value="4"> 4 </option>
                    <option value="5"> 5 </option>
                    <option value="6"> 6 </option>
                    <option value="7"> 7 </option>
                    <option value="8"> 8 </option>
                    <option value="9"> 9 </option>
                    <option value="10"> 10 </option>
                </select>            
            </form>
        </div> <!--ENDE auswahl-->
        
        <div id="separator"></div>
        
    	<li>
030 Eis2: bla bla bla
    	</li>
        <div id="auswahl">
            <form action = "uc04.php" method = "post">
                Menge
                <select name="eis2">
                    <option value="0" selected> 0 </option>
                    <option value="1"> 1 </option>
                    <option value="2"> 2 </option>
                    <option value="3"> 3 </option>
                    <option value="4"> 4 </option>
                    <option value="5"> 5 </option>
                    <option value="6"> 6 </option>
                    <option value="7"> 7 </option>
                    <option value="8"> 8 </option>
                    <option value="9"> 9 </option>
                    <option value="10"> 10 </option>
                </select>            
            </form>
        </div> <!--ENDE auswahl-->
        
        <div id="separator"></div>
        
            	<li>
030 Eis3: bla bla bla

    	</li>
        <div id="auswahl">
            <form action = "uc04.php" method = "post">
                Menge
                <select name="eis3">
                    <option value="0" selected> 0 </option>
                    <option value="1"> 1 </option>
                    <option value="2"> 2 </option>
                    <option value="3"> 3 </option>
                    <option value="4"> 4 </option>
                    <option value="5"> 5 </option>
                    <option value="6"> 6 </option>
                    <option value="7"> 7 </option>
                    <option value="8"> 8 </option>
                    <option value="9"> 9 </option>
                    <option value="10"> 10 </option>
                </select>            
            </form>
        </div> <!--ENDE auswahl-->
    
	</div> <!--ENDE bestellformular-->
 
Warum nutzt du denn die vielen verschiedenen Forms? Hat das einen Mehrzweck? Kann ich gerade auf Anhieb nicht wirklich erkennen.

Da alle Forms die selbe Action haben und du dann einen Button nutzen willst, macht es doch mehr Sinn nur eine Form zu nutzen, oder?

Ich würde hier also ganz klar ein Form um die komplette Seite drumherum legen.
 
Hi,
Ich würde hier also ganz klar ein Form um die komplette Seite drumherum legen.
... unter Entfernung der bestehenden <form>-Tags - damit hier keine Mißverständnisse aufkommen ;)

Das ul-Element, das eine unsortierte, oder das ol-Element, das eine sortierte (nummerierte) Liste im HTML-Dokument auszeichnet, hast du übrigens vergessen:
Code:
    <h1>Vorspeisen:</h1>
    <ul>
    	   <li>
    	   020  pizza 1: bla bla bla
    	   </li>
    </ul>
    <div id="auswahl">

Desweiteren muß ein ID-Bezeichner (hier: #auswahl und #separator) im Dokumentbaum eindeutig sein, darf darin also nicht mehrmals vergeben werden.

mfg Maik
 
Ne, dass hat kein Sinn, dass ich soviele <form> benutzt hab, ich wusste es nur nicht besser :) Also danke für den Hinweis, werd ich alles in eines packen.

Achso, das hat aber funktioniert, dass ich merhmals #auswahl benutze.
Welche andere Variante kann ich benutzen, damit ich es per CSS designen kann und nicht mehrmals #auswahl benutzen muss?
Kann man dem Form selbst eine ID oder so geben, dass ich so alle Auswahlmenüs ansprechen kann?

mfg
 
Mache aus <div id="auswahl"> einfach ein <div class="auswahl"> und mache im CSS aus der Raute (#) einen Punkt (.). Schon ist es wieder HTML-Konform.
 
Ok, hat alles gute geklappt, Danke.

Nun hab ich noch ne php Frage, oder soll ich dafür in ein anderes Forum?

Geht es mit diesem <form>, was ich nun hab, dass ich bei jeder Pizza einen Preis hab, welcher an eine Variable oder so übergeben wird, damit ich ihn mit anderen Pizza-preis-Variablen addieren kann, bzw. mit echo einfach ausgeben kann?
Bzw. wie realisier ich das am besten?

mfg
 
Hi,

den Preis für die Pizza solltest Du aber nicht im Formular übergeben lassen (sonst bestell' ich da gerne eine für 0,00 € ^^). Die Daten hast Du doch auf dem Server z.B. in einer Datenbank (denke ich doch mal). Da liest Du dann halt für die bestellten Pizzen die Preise aus.

LG
 
Jo.
wie mach ich es am besten, Alle Daten in eine XML und dann irgendwie dort rausholen?
Kenn mich mit php nicht aus, sollte aber nicht schwer sein das was ich machen wir schnell anzulesen.
 
Also wenn du eine Datenbank zur Verfügung hast, würde ich eine Datenbank nehmen:

Tabelle: Pizzas
Attribute: ID, Pizza, Preis

Auf der Seite, auf der du das Formular auswertest fragst du nun den Preis für die übergebene Pizza ab und multiplizierst diesen mit der Anzahl der Bestellungen.

PHP:
$qry = mysql_query("SELECT Preis FROM Pizzas WHERE Pizza='".$_POST['Pizza']."'");
$array = mysql_fetch_array($qry);
$preisFuerDiesePizza = $array['Preis'] * $_POST['AnzahlDerPizzen'];

$_POST['VAR'] sind die Namen der Auswahlfelder in deinem Formular!
 
Zurück