Dynamisch erzeugte textfelder sollen in datenbank

Sandra Fricke

Grünschnabel
ich hab vor nen paar Tagen ein script gefunden welches dynamisch über js textfelder erzeugt und ein Array legt. Jetz ist meine Frage, wie bekomm ich das hin das diese textfelder in die db geschrieben werden...

wäre über hilfe sehr dankbar.. auch tipps sind mir wilkommen... ich hab schon durch die gegend gegoogelt doch scheinbar unter den falschen begriffen..


dazu muss ich noch sagen, jedes textfeld soll eine neue zeile schreiben:

textfeld 1 : XYZ
textfeld 2 : XYZ

usw
 
Zuletzt bearbeitet:
Hallo Sandra,

ich versteh noch nicht so ganz was du machen willst.

Du willst mit Hilfe von JavaScript eine bestimmte Anzahl Textfelder auf der Seite erstellen und dann den Inhalt der Felder in der Datenbank speichern?

Zum Speichern der Daten könntest du hergehen und nach dem Absenden des Formulars einfach den Inhalt von $_POST abfragen bzw. entsprechend auswerten.
 
das wäre so im ganzen kein problem...
aber : da es ja mehrere Formular felder sind... müsste ich die nicht mit einer while schleife eintragen... vllt wenns hilft, poste ich hier das was ich schon habe

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>
	<head>
		<script language="JavaScript" type="text/javascript">
			var i=1;
			function addupload()
			{
				i=i+1;
				
				var row = document.getElementById("table").insertRow( document.getElementById("tr").rowIndex+1 );
				var cell = row.insertCell( 0 );
				cell.className = 'links';
				
				var text = document.createTextNode( 'test' );
				cell.appendChild( text );
				
				cell = row.insertCell( 1 );
				
				var input = document.createElement( 'input' );
				input.type = 'text';
				input.name = 'X'+i;
				cell.appendChild( input );
				
				document.getElementById("i").value = i;
			}
		</script>
	</head>

	<body leftmargin="2" topmargin="5">
		<table cellspacing="0" cellpadding="0" width="450">
			<tr><td width="100%" colspan="2" align="center" class="titel">
			</td></tr>
		
			<tr><td width="435" colspan="2" align="center" class="titel">
&nbsp;			</td></tr>

			<tr><td colspan="2" class="alert">
			</td></tr>
		
			<tr><td colspan="2">
				<form name="form" action="testi.php" method="GET" enctype="multipart/form-data">
					<table cellspacing="0" cellpadding="0" width="450" id="table">
						<tr id="tr"><td width="50%" class="links">
							Textfeld: 
						</td>
						<td width="50%" class="zeug">
							<a href="javascript:addupload()" class="link1">+</a>
						</td></tr>
					
					
						<tr><td width="50%" class="links">&nbsp;</td><td width="50%" class="rechts">
							
						</td></tr>
					
						<tr><td width="50%" class="links">
						</td>
						<td width="50%" class="rechts">
							<input type="submit" name="submit" class="input2" value="Hinzuf&uuml;gen" />
						</td></tr>
					<input id="i" type="hidden" value="1" name="i" />
					</table>
				</form>
			</td></tr>
		</table>
	</body>
</html>


Wenn ich es absende landet Oben (Wegen dem GET im Formular) folgendes:



X1= txt&X2 = txt
usw.

ich hoff das hilft nen bissel
 
Na das "oben" (in der URL) die Namen der Textfelder und die darin gemachten Angaben stehen ist doch auch richtig so.

Schreib mal am Anfang oder am Ende deines Codes

PHP:
<?php var_dump($_GET); ?>

und du wirst sehen das alle Felder mit Namen und Inhalt korrekt übertragen werden. Du musst es dann halt noch entsprechend auswerten.
 
Also wenn du den dynamisch erzeugten Textfeldern einen einheitlichen Namen gibst und dann noch das "Array-Kennzeichen" dazuschreibst, erzeugt PHP ein Array aus allen Textfeldern.

Dazu die Zeile im Javascript beispielsweise so ändern:

Code:
input.name = 'textfeld[]';

Dann schreibst du noch folgenden PHP Code irgendwo hin:

PHP:
<?php
for ($a = 0; $a < count($_GET["textfeld"]); $a++) {
	echo "Inhalt von textfeld" .$a . " : " .$_GET['textfeld'][$a] ."<br />";
}
?>

Schau es dir mal an was damit passiert, denke es hilft.
 
VIELEN Lieben Dank! Jetzt trägt er auch (so wie er soll und ich es haben wollte) die Daten in die datenbank ein!

nochmals vielen Dank****** Für deine Mühe :D
 
Zurück