Mehrere Inputfelder nacheinander in Textdatei schreiben

jonnyfe

Grünschnabel
Hallo,

ich versuche schon verzweifelt, den ganzen Abend das hinzubekommen. Ich habe eine Textdatei, die wie folgt aufgebaut ist:

Bolognese|Hackfleisch|4 Euro
Prosciutto|Schinken|5,80 Euro
Hawaii|Käse|6 Euro
Vegetaria|Tomaten|4,50 Euro

diese Datei wird mittels

PHP:
<?
echo"<center><table>
  <tr align='center'><td>Pizza</td><td>Zutaten</td><td>Preis</td></tr>
  <form action='verarbeitung2.php' method='post'>";
$datei = file("datei.txt");
foreach($datei as $zeile => $inhalt)
{
$teil = explode("|",$inhalt);
echo "
  <tr><td><input type='text' name='pizza' value='".$teil[0]."'></td>
  <td><input type='text' name='zutaten' value='".$teil[1]."'></td>
  <td><input type='text' name='preis' value='".$teil[2]."'>&nbsp;&euro;</td></tr>";
}
echo"</table><input type='submit' value='ändern'></form></center>";
?>

in inputfeldern zum editieren angezeigt. Kleines Beispiel: http://uploadserver1.up.funpic.de/PHP/eintragen.php

Nun sollen die Inhalte der Inputfelder, wieder in die Textdatei gespeichert werden, nur so, dass eine Reihe der Inputfelder in einer Zeile in der Textdatei gespeichert sind und diese duch einen |-Strich getrennt, sodass man sie eben auch wieder mit dem oben genannten Skript aufrufen und verändern kann.

Ich wäre um Hilfe sehr dankbar.

Viele Grüße,

Jonny
 
Erstmal müssen die Input Felder anders heissen damit du alle Daten bekommst und nicht nur vom letzten Feld! Dies musst du in die foreach schleifen bauen. Vlt mit einen Zähler.
Dann sollten alle Daten ankommen und du musst sie nurnoch 'auseinanderfuddeln' und in die datei schreiben!
 
Du könntest es so machen:
PHP:
 <? 
echo"<center><table> 
  <tr align='center'><td>Pizza</td><td>Zutaten</td><td>Preis</td></tr> 
  <form action='verarbeitung2.php' method='post'>"; 
$datei = file("datei.txt"); 
foreach($datei as $zeile => $inhalt) 
{ 
$teil = explode("|",$inhalt); 
echo " 
  <tr><td><input type='text' name='pizza[]' value='".$teil[0]."'></td> 
  <td><input type='text' name='zutaten[]' value='".$teil[1]."'></td> 
  <td><input type='text' name='preis[]' value='".$teil[2]."'>&nbsp;&euro;</td></tr>"; 
} 
echo"</table><input type='submit' value='ändern'></form></center>"; 
?>

Siehe auch:
11.10. Wie kann man Checkboxen verarbeiten?
http://www.php-faq.de/q/q-formular-checkbox.html
 
Hallo,

danke erstmal für die Antworten, gleich mit verbessertem Quelltext :p

Das wäre jetzt also schon mal geschafft, jetzt muss ich das ganze aber wieder in eine Textdatei schreiben. Wie kann man das nun machen, dass z. B. $pizza[0] in der ersten Zeile steht? Zudem sollten ja beliebig viele Felder automatisch auch in die Textdatei geschrieben werden, wie ist das möglich?

Ich hoffe, mir kann wieder jemand helfen - bin ein blutiger Anfänger in PHP...

Viele Grüße,

Jonny
 
Zurück