Formular Einträge selbst definieren

lll192837465lll

Erfahrenes Mitglied
Hallo Zusammen

Ich sitze gerade vor einem Problem, ich wollte nämlich eine Idee verwirklichen wobei man in einem Formular zuerst selber definiert, wieviele Einträge man schreiben will (das weiss man ja dann) und wenn man die definiert hat, kommt man zum formular, das sich durch die einstellungen richtig generiert. Also, wenn ich z.b. sage ich will 5 einträge machen dass dann 5 einträge zum reinschreiben kommen.

Jetzt kommt aber das Problem, ich will jeden eintrag dann in eine Variable speichern. diese Variablen sind dann ja eigentlich auch dynamisch zur einstellung die dann gemacht werden, also bei 5 müssen dann 5 variablen die einträge speichern und bei 7 halt 7 variablen.

Wie kann ich das realisieren? Ich hab echt kein Plan und bin um jede Hilfe Dankbar! :-(
 
Also mein Ansatz wäre ungefähr so:
Ausschnitt aus der Formular Datei (gesendet wird per Post):
PHP:
$anzahl=5; //Anzahl der Einträge
$i=0;
while($i<$anzahl)
{
echo "<input type=\"text\" name=\"feld_".$i."\"></input>";
$i++;
}
Und da in der Empfänger Datei dann:
PHP:
$arkeys=array_keys($_POST);
$i=0;
while($i<sizeof($arkeys))
{
if(substr($arkeys[$i],0,5)=="feld_")
{
echo "<p>".$arkeys[$i]."=".$_POST[$arkeys[$i]]."</p>";
}
$i++;
}
So werden halt die Daten dann angezeigt, aber genauso kannst du das dann alles in einem Array speichern.
 
Danke euch beiden. Bei der Variante von SCIPIO-AEMILIANUS komme ich eigentlich sehr gut mit. Das heisst, ich weiss nur nicht wie sehen denn dann am schluss die variablen aus? Damit ich die wieder abrufen kann.

$arkeys1, $arkeys2, $arkeys3 etc.?
 
$arkeys ist nur ein Array, in dem alle Keys von $_POST drin stehen.
Eine möglichkeit wäre:
PHP:
$eintrag=new Array();
$arkeys=array_keys($_POST);
$i=0;
while($i<sizeof($arkeys))
{
if(substr($arkeys[$i],0,5)=="feld_")
{
$eintrag[]=$_POST[$arkeys[$i]];
}
$i++;
}
So füllt er alle Variabeln in ein Array.
Abfragen kannste nun die einzelnen dann über:
PHP:
$eintrag[0]; $eintrag[1];.....
Jeh nachdem, wieviel Felder du hattest.

||EDIT:
Hab mir mal Zodiac's Vorschlag mal angeguckt. So ginge es natürlich auch.
Da würdeste die Werte wie folgt abfragen:
PHP:
$eintrag=$_POST['feld'];
//Ausgabe wie folgt
echo $eintrag[0];
echo $eintrag[1];
echo $eintrag[2];........
 
Zuletzt bearbeitet:
Danke, ich habe das gerade ausprobiert, scheint aber irgendwie nicht zu funktionieren. Ich habe den Fehler (denke ich) schon gefunden:

Das kann doch gar nicht klappen.
Formular Datei
PHP:
echo "<input type=\"text\" name=\"definition".$i."\"></input><br>";
Empfänger Datei
PHP:
$eintrag=$_POST['definition'];

Der müsste da doch (bei der Empfänger Datei) rein theoretisch durchzählen oder? Also hinten dran noch 1,2,3,4 etc.

Macht man das auch mit einer while schlaufe?

Danke!
 
Also ich kenne beides nicht :suspekt:

Aber wenn ich diese Daten auslesen will und diese dann ins neu generierte php-file schreiben will, kann ich dann im neu generierten php-file die variablen des php-files angeben, welche das file generiert? Das funktioniert doch gar nicht, ich meine die müssen darin ja dann statisch geladen sein und nicht mit einer variable dynamisch.

Ich bin richtig durcheinander :S
 
Mit DOM kannst du in PHP XML bearbeiten und auslesen.
Wenn du Daten in eine Datei schreiben willst, sollte man immer XML nehmen, weil man die daten besser strukturieren kann.

Du kannst dir ja eine Classe schreiben oder zwei welche einen XML Tüp richtig einlesen und in einer PublicVar preisgeben. Wäre am schönsten und gut wiederverwendbar.
Du kannst auch ein XML mit den Daten erzeugen nicht speichern, es aber mit einem vorher deffinierten XSL in HTML umwandeln, dann hast du eine bessere trennung von Markup und Code.
 
Formular Datei
PHP:
echo "<input type=\"text\" name=\"definition".$i."\"></input><br>";
Empfänger Datei
PHP:
$eintrag=$_POST['definition'];
Ich bin von Zodiacs Formular Beispiel ausgegangen. Demnach müsst die Formular Datei so aussehen:
HTML:
<input type="text" name="definition[]"></input><br>
<input type="text" name="definition[]"></input><br>
<input type="text" name="definition[]"></input><br>
<input type="text" name="definition[]"></input><br>
(Beachte die [] in den Name Attributen)
In der Empfänderdatei kommt nun ein Array mit allen angegebenen Werten an. Zu veranschaulichung:
PHP:
$eintrag=$_POST['definition'];//Kopiert das Array der übergebenen Werte in eine Variabel
$i=0;
while($i<sizeof($eintrag))
{
echo "<p>Definition ".$i+1."=".$eintrag[$i]."</p>";
$i++;
}
 
Zurück