Dynamische Variable einlesen
Alex
- php
Hallo zusammen!
Folgendes Problem:
Ich habe ein Formular, das dynamisch viele zellen aufbaut
<?
$anzahl = $x; // dynamisch
for ($i=1;$i<=$anzahl;$i++){
echo "
<tr>
<td>Zelle$i:</td><td><input type='text' name='input_zelle$i' size='40'></td>
<td>Info$i:</td><td><input type='text' name='input_info$i' size='40'></td>
</tr>
";
}
?>
Beim verarbeiten des Formulars möchte ich das ganze in ein array schreiben. Natürlich auch dynamisch.
$daten = array();
for ($i=1;$i<=$anzahl;$i++){
$daten[] = array($input_zelle$i,$input_info$i);
}
Allerdings funktioniert "$input_zelle$i" ja nicht ... weis jemand wie ich das hinbekomme ?
Vielen dank schon mal.
mfG - Alex
Moin,
Allerdings funktioniert "$input_zelle$i" ja nicht ... weis jemand wie ich das hinbekomme ?
ich weiss zwar nicht, ob es das ist was du willst, aber du könntest es ja so versuchen ${$input_zelle.$i}.
MfG,
Juan
Danke aber es hat nicht geholfen - leider
ich will im prinziip, dass
for ($i=0;$i<=5;$i++){
echo ${$input_zelle.$i};
}
das gleiche ergibt wie
echo $input_zelle0;
echo $input_zelle1;
echo $input_zelle2;
echo $input_zelle3;
echo $input_zelle4;
echo $input_zelle5;
also dass der die variable am ende (0 bis 5) selber hochzählt und die jeweilige "Zelle" ausgibt.
zumindest hat das bei mir nicht funktioniert :/
Moin,
ich will im prinziip, dass
for ($i=0;$i<=5;$i++){
echo ${$input_zelle.$i};
}
ich glaub das Problem ist die geschweifte Klammer.
So sollte jeweils das gleiche rauskommen:
$input_zelle0 = 0;
$input_zelle1 =1;
$input_zelle2 = 2;
$input_zelle3 = 3;
$input_zelle4 = 4;
$input_zelle5 = 5;
echo $input_zelle0;
echo $input_zelle1;
echo $input_zelle2;
echo $input_zelle3;
echo $input_zelle4;
echo $input_zelle5;
echo "<hr>";
for ($i=0;$i<=5;$i++){
echo $$input_zelle.$i;
}
MfG,
Juan
ah habs entdeckt :D
also die geschweifte klammer hat schon gepasst nur eine sache war falsch.
for ($j=1;$j<=5;$j++){
echo ${input_zelle.$j};
}
vor dem input selber durfte kein $ mehr stehen.
jetzt gehts.
vielen Dank für die Hilfe !!
Hallo,
Ich habe ein Formular, das dynamisch viele zellen aufbaut
werden diese Dialogfelder erst am Client aufgebaut, oder bereits auf dem Server vorbereitet und dann als fertiger HTML-Code ausgeliefert?
LG
Chris
werden auf dem Server aufgebaut per php
also der user gibt an wieviele eingaben er machen will und dann gehts in die 2te stufe
lösung ist schon gefunden - aber danke für das Engagement
Hallo Alex,
werden auf dem Server aufgebaut per php
also der user gibt an wieviele eingaben er machen will und dann gehts in die 2te stufe
lösung ist schon gefunden - aber danke für das Engagement
Dann solltest Du sicherheitshalber Deine Lösung hier nochmals posten. Könnte ja eventuelle sein, dass es noch bessere Lösungen gibt. Und warum solltest Du Dich mit halben Sachen zufrieden geben? :-)
LG
Chris
Klar mach ich das ... am Ende lieg ich komplett falsch !? ;)
So wird dynamisch das Formular erweitert
<?
$anzahl = 5; // kann man dynmisch einstellen :)
for ($i=1;$i<=$anzahl;$i++){
echo "
<tr>
<td><br>Probe$i:</td>
<td><input type='text' name='input_zelle$i' size='40'></td>
<td>Info$i:</td>
<td><input type='text' name='input_info$i' size='40'></td>
</tr>
";
}
?>
Nach dem submit gehts zur Verarbeitung der Daten:
<?
for ($i=0;$i<=4;$i++){ // schleife um dynamische variablen einzulesen
${probe.$i} = array(${input_zelle.$i},${input_info.$i}); // jaaa hier wird das array eingelesen
}
?>
jetzt kann das array ausgelesen werden mit den wichtigen daten.
echo ${probe.$i}[0];
oder was man halt damit machen will.
Noch Fragen ? ^^
Meine Frage ging um folgendes:
${input_zelle.$i}
Hallo Alex,
Klar mach ich das ... am Ende lieg ich komplett falsch !? ;)
*mmh* zumindest ungeschickt, da Du eine Automatik von PHP nicht nutzt, sondern versuchst, diese nochmals selber nachzubauen...
<?php
$anzahl = 5; // kann man dynmisch einstellen :)
$liste = "";
for ($i=1; $i<=$anzahl; $i++)
{
$liste .= "
<tr>
<td><br>Probe $i:</td>
<td><input type='text' name='input_zelle[$i]' size='40'></td>
<td>Info$i:</td>
<td><input type='text' name='input_info[$i]' size='40'></td>
</tr>
";
}
?>
Nach dem submit gehts zur Verarbeitung der Daten:
<?php
if(isset($_POST['input_zelle'] and is_array($_POST['input_zelle'])
{
ausgabe($_POST['input_zeile']);
}
if(isset($_POST['input_info'] and is_array($_POST['input_info'])
{
ausgabe($_POST['input_info']);
}
?>
Das Ausgeben eines Arrays kann man mittels foreach() vornehmen.
Deine Versäumnisse sind so vielfältig, dass ich im Moment leider keine Zeit habe, darauf einzugehen.
LG
Chris
Deine Versäumnisse sind so vielfältig, dass ich im Moment leider keine Zeit habe, darauf einzugehen.
- Zergliederung von Datenstrukturen
- Zugriff auf evtl. nicht gesetzte Variablen
- Einschleppung über ggf. gesetztes register_globals
- ...
vielen dank für diese Liste ... das könnte ich vielleicht auch mal gut gebrauchen
meine Form brauch ich nur um sie per E-Mail weiterzuschicken.
deswegen sind einige von diesen "Versäumnissen" nicht so wichtig.
Ich hab ja auch nur einen kleinen Teil von dem Script hier reingeschrieben, in dem es um diese Variablenbildung geht.
das mit der Liste werd ich wohl auch mal ausprobieren (müssen).
Vielen Dank für die Hilfe !
mfG - Alex
PS: Die Erwähnung der Versäumnisse hat mir auch schon geholfen. Danke :)