[Variablen] Zugriff durch andre Variable (zusammengesetzter String)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Variablen] Zugriff durch andre Variable (zusammengesetzter String)

    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-Code:
    <?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-Code:
    <?php
    eval("\$sin = \$test_$i;");
    ?>
    statt
    PHP-Code:
    $sin '$test_'.$i
    genommen.
    Zuletzt geändert von noscapin; 16.11.2005, 15:36.

  • #2
    Der obere Teil sieht ja ganz gut aus*, aber den unteren würde ich eher so umsetzen:
    PHP-Code:
    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.
    Zuletzt geändert von onemorenerd; 16.11.2005, 15:42.

    Kommentar


    • #3
      edit: falsch verstanden
      Zuletzt geändert von Spliffster; 16.11.2005, 15:42.

      Kommentar

      Lädt...
      X