2 oder mehere Formluare auf einer Seite

FipsTheThief

Erfahrenes Mitglied
Ich brauch Nachhilfe in Sachen Formularen ;)

Ich hab mir einen Terminkalender gebastelt , so da werden dann Daten und Termine eingetragen , es können auch mehere Termine an einen Tag sein. Soweit klappt das auch alles.

So nun wollte ich das weiter ausbauen , also hab ich für jeden Termin der eingetragen war ein Formular ausgeben lassen. Jeder Eintrag an einen Tag bekommt dann so ein Formular zugewiesen erstmal.

So , das Problem ist folgendes:

Ist es nur 1 Formluar , kann ich schön was reinschreiben ohne Sorgen und er speichert mir das ebenfalls in der DB.
Sind wir bei 2+ Formularen , dann geht der Ärger los. Ich kann in alle Formulare was eintragen aber er akzeptiert es immer nur beim letzten und speichert das in die Datenbank :/

Inzwischen Blick ich da nicht mehr durch zu lange am Rechner wohl inzwischen , hat wer zufällig da ne Idee parat ?

Hier noch ein wenig Quellcode:

Formular erstellen

PHP:
  ....
     $this->Spieler = mysql_query("SELECT * FROM spieler WHERE $this->termin_id = SID");
     $this->Rows = mysql_num_rows($this->Spieler);
     
     for($i=0;$i < $this->Rows; $i++){
  	 $this->Spieler_ang[$i] = mysql_fetch_array($this->Spieler);
     }
  
     for($i = 0 ; $i < $this->Rows;$i++){
 	 echo "<input type='text' value='".$this->Spieler_ang[$i]['Spieler']."' size='15' readonly><br>";
  	}
  
     echo "<form method='post' action='terminein.php'>";
  		for($i = $this->Rows ; $i < 8 ; $i++){
  		   echo "<input type='text' size='15' name='name$i'><br>";
  		   $anzahl = $i;
  		}
  	 
  	if($this->Rows != 8){
  		echo "<input type='hidden' name='SID' value='$this->termin_id'>";
  		echo "<input type='hidden' name='anzahl' value='$anzahl'>";
  		echo "<input type='submit' value='Mitmoschen' name='Einschreiben'>";
  	  }
  	}
  ....

Einspeichern in die Datenbank:
PHP:
  ....
  	mysql_select_db($mysqldb);
  	phpinfo();
  
  	$SID = $_POST["SID"];
  
  	 for($i = 0 ; $i < 8;$i++){
  	  if(isset($_POST["name$i"]) && $_POST["name$i"] != ""){
  		$spieler = $_POST["name$i"];
  		mysql_query("INSERT INTO spieler(SID,Spieler) VALUES('$SID','$spieler')");
  	  }
  	}
  }
  ....
 
Zuletzt bearbeitet:
Naja das Problem ist , es sollen sich immer nur 8 Leute eintragen können. Es geht ein wenig um ein Spiel wo sich die Leute meinetwegen verabreden können.

Also macht einer ein Termin auf wann er gerne spielen würde und noch Leute sucht die mitmachen.
Ein anderer hätte auch Lust, aber kann erst später , also erstellt er sich einen neuen Termin am selben Tag zu einen späteren Zeitpunkt.
Dann würden 2 Formulare erscheinen , wobei immer nur das letzte verarbeitet werden kann. Den Submitbutton einen anderen Namen zuweisen klappte nur bedingt, eigentlich gar nicht :(

Somit wollte ich gleich auf der Seite dann alle Spiele auflisten mit dem Formular wo man sich dafür dann eintragen kann. Somit wären das dann mehere Formulare für einzelene Spiele. Also soll er quasi nur eins abarbeiten immer. Macht er ja auch aber immer das "falsche" .

Edit : So bin einen anderen Weg gegangen imdem ich die Seite ein neuem Fenster öffne, das Formular dort erstelle und es da dann eintragen lasse. Danke für die Hilfe nochmals :)
 
Zuletzt bearbeitet:
Hi!

Hatte gerade das selbe Problem und bin durch die Suche auf den Thread hier gestoßen.
Dann bin ich von selbst drauf gekommen.
Du kannst doch für jeden Termin ein eigenes Formular machen.
Da du das Problem ja schon gelöst hast, mache ich mir nicht mehr die Mühe, die Lösung auf dein Thema umzuschreiben, sondern kopier grad meins:

PHP:
while($row = mysql_fetch_object($ergebnis))
    {
    ?>
	<form name="menus<? echo $row->ID; ?>" method="post" action="page.php?updatemenus">
	<input name="ID" type="text" value=<? echo $row->ID; ?> size="3">
  	<input name="name" type="text" value='<? echo $row->name; ?>' size="20">
	<input type="submit" name="Submit" value="update">	
	</form><br>
	<?
   	}

Ich weiß ja nicht, ob das ne rationelle Lösung ist und ob da alles nötig ist, was drin ist (wie z.B. der Name des Formulars), aber es funktioniert prächtig.
Nachteil ist halt, dass auch hinter jedem Termin ein Button erscheint...
 
Mhm das ist natürlich ne schickere Variante :) .

Ich hab es einfach mit JavaScript ein neus Fenster geöffnet und dort weiter verarbeitet , also keine SubmitButtons mehr genommen sondern normale Buttons. Klappt zwar auch aber da ist wieder das Problem das ich dann darauf angewiesen bin das der User JavaScript aktiviert hat und keinen PopUp Blocker drinnen hat.

Mehere Submittbuttons waren ja eh geplant da jedes Formular für sich gelten sollte. Hätte ich auch mal selber drauf kommen können aber es hilft mir auch bei meinen neuen Projekt :)

Danke Dir auf jeden Fall
 
Zuletzt bearbeitet:
Zurück