You are not logged in.

  • Login

1

Sunday, May 15th 2011, 3:43pm

Mehrere input in übergabe als Array speichern?

Hallo, ich habn Problem bezüglich einer Programmierung.
Ich hab ein Beispiel geschrieben und hoffe das mir jemand hierbei helfen kann.

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
<form method="post">
<?php
for($i = 0; $i < 5; $i++){
	print "<input type='hidden' name='$i' value='$i'>$i<input type='text' name='/*     */' value='Beispiel[$i]'><br />";	
}
?>
<input type="submit" name="submit" value="Absenden" />
</form>

<?php

$array = $_POST['/*     */'];
?>


Ich will das die 'id' und der zugehörige 'text' wert in ner art Array oder so gespeichert werden dass ich es in der Datenbank aktualisieren kann.

PHP Quellcode

1
 


mfG s1ckST4R

2

Sunday, May 15th 2011, 4:05pm

Hallo,

wenn ich dich richtig verstehe, dann müsste es das hier sein:

HTML Code

1
<input type="text" name="array_name[$i]" value="Beispiel[$i]" />
Nun kannst du mittels

PHP Quellcode

1
$_POST['array_name'][$i]
auf den zugehörigen Wert zugreifen.

Gruß,
Sorcerer

3

Sunday, May 15th 2011, 4:20pm

Ich hab ein näheres Beispiel Erstellt:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<form method="post">
<?php
$sql = mysql_query("SELECT * from test");
while($row = mysql_fetch_array($sql)){
	echo "<input type='hidden' name='id' value='$row[id]'>$row[id]<input type='text' name='/*    */' value='$row[text]'><br />";		
}
?>
<input type="submit" name="submit" value="submit" />

<?php
if(isset($_POST['submit'])){
	$id = $_POST['id'];
	$test = $_POST['/*    */'];
	
	/* um den passenden text in die passende reihe mit der id einzutragen muss das iwie im array übertragen werden und dann:
	
	mysql_query("UPDATE test SET test_spalte = $test WHERE id = $id");
	
	 */	
}
?>


Ich will dann das jede zeile also 'id' und 'text' neu eingetragen werden... aber nur überschrieben nicht hinzugefügt.

mfG s1ckST4R

4

Monday, May 16th 2011, 10:30am

Hallo,

wenn du den Formularnamen eine eckige Klammer anhängst, bekommst du die Inhalte als Array übergeben. Gibst du einen festen Zahlenwert vor (wie ich es hier mache), dann ist der Eintrag im Array eindeutig identifiziert. Lässt du die Klammer leer, wird es einfach von 0 an hochgezählt.

PHP Quellcode

1
2
3
while($row = mysql_fetch_array($sql)){
	echo <input type='hidden' name='id[]' value='$row[id]'>"$row[id]<input type='text' name='name[$row[id]]' value='$row[text]'><br />";		
}


jetzt kannst du mit einer foreach-Schleife durch alle $_POST['id'] (das ist ja nun ein Array) gehen und dir entsprechend die Texte mit $_POST['name'][$id] ansprechen, die zu dieser id gehören.

Du könntest sogar das input-Feld für die id weglassen, und mit einer while-Schleife sowohl den Schlüssel als auch den Wert aus dem textfeld-Array ausgeben lassen, fand ich aber bei meinen anfänglichen PHP-Schritten nicht ganz so einfach zugänglich, musst du aber selbst entscheiden, wie fit du dich in PHP fühlst.

Gruß,
Sorcerer

5

Monday, May 16th 2011, 11:35am

Ich danke dir vielmals dein tipp hat mir sehr geholfen Problem gelöst!

thX vielmals!!!!

mfG s1ckST4R

Similar threads

Social bookmarks