php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
[Variablen] Zugriff durch andre Variable (zusammengesetzter String)


 
noscapin
16-11-2005, 16:30 
 
Hi erst mal.
Also das Problem ist schwer zu beschreiben.

Ich will also folgendes.
Es soll ein bestimmte Anzahl an Formularen erscheinen, die Anzahl wird vom User am Anfang festgelegt.
Dann sollen diese erscheinen und die Formulardaten abgeschickt werden.
Im nächsten Schritt will ich sie dann wieder verarbeiten (in diesem Fall ausgeben).

Nun möchte ich wissen, ob ich so etwas überhaupt möglich ist und, wenn ja, wie man es so etwas realisieren kann.

Das hier war nun mein erster Versuch.
<?php
if ((!isset($anzahl_post)) && (!isset($eingabe_post)) )
{
echo ' <form action="form_test.php" method=post> ' ;
echo "<table>";
echo "<tr>";
echo "<td>Anzahl </td>";
echo '<td><input type=text name="anzahl" size="3" maxlenght="3"></td>';
echo "</tr>";
echo "</table>";
echo '<input type=submit name="anzahl_post" value="senden">';
echo "</form>";
}

if ( (!isset($eingabe_post)) && (isset($anzahl_post)) )
{
echo ' <form action="form_test.php" method=post> ';
for ($i=1;$i<=$anzahl;$i++)
{
form_anz($i);
}
echo '<input type=hidden name="anzahl" value="'.$anzahl.'"> ';
echo '<input type=submit name="eingabe_post" value="senden">';
echo "</form>";
}

if (isset($eingabe_post))
{
for ($i=1;$i<=$anzahl;$i++)
{
$sin = '$test_'.$i; // Der Code hier funktioniert nicht er gibt nur $test_1,test_2,... aus
//auch wenn ich statt dessen $$sin= '$test_'.$i; mache, und die Ausgabe unverändert lasse
//dann gibt er überhaupt nichts aus
//mach nun bei beiden ausdrücken $$ dann gibt er wieder das gleiche aus wie bei diesem hier aus

echo "test $i = ".$sin." <br> "; //
}
echo "$anzahl <br>";//funktioniert
echo "$test_1 <br>";//funktioniert
}

function form_anz($nr)
{
echo "<table>";
echo "<tr>";
echo "<td>Test ".$nr."</td>";
echo '<td><input type=text name="test_'.$nr.'"size="30" maxlenght="30"></td>';
echo "</tr>";
echo "</table>";
}
?>



Problem gelöst ich hab nur

<?php
eval("\$sin = \$test_$i;");
?>

statt

$sin = '$test_'.$i;

genommen.

 
onemorenerd
16-11-2005, 16:39 
 
Der obere Teil sieht ja ganz gut aus*, aber den unteren würde ich eher so umsetzen:

if (isset($eingabe_post)) {
for ($i=1; $i<=$anzahl; $i++)
echo "test $i = {$test[$i]}<br>";
echo "$anzahl <br>";//funktioniert
}

function form_anz($nr) {
echo '<table><tr><td>Test '.$nr.'</td><td>';
echo '<input type=text name="test['.$nr.']" size="30" maxlenght="30">';
echo '</td></tr></table>';
}


* Du solltest dir auf http://php.net/string unbedingt mal den Unterschied zwischen ' und " klarmachen.

 
Spliffster
16-11-2005, 16:40 
 
edit: falsch verstanden

-archiv-

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:41 Uhr.