Name eine Varibale bei $_POST

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

  • Name eine Varibale bei $_POST

    Hi,

    ich gebe einer Funktion einen Dateinamen mit, die dann die entsprechende Datei öffnen soll. Im Formular habe ich Textfelder, die wie der Dateiname heißen, nur eben ohne die Endung .csv, und dahinter mit einem Index (also z.B. "feld[1]", "feld[2]", wenn die entsprechende Datei "test.csv" heißt).
    Wenn ich nun auf den Button Speichern gehe, der auch den Namen der Datei hat, sollen diese Textfelder ausgelesen werden, und daran scheitert es bei mir. So sieht es jetzt bei mir aus:
    PHP-Code:
    <?
    if (isset($_REQUEST['test'])) {
       speichern('test.csv');
    }

    function speichern($dateiname) {
       $rest=substr($dateiname,0,-4);
       echo $_POST[$rest][2];
    }
    ?>
    Das Probelm ist, dass er mir jetzt den dritten Buchstaben des values des Buttons ausgibt...
    Wie bekomme ich es aber hin, dass er mir den Inhalt des entsprechenden Textfeldes gibt?

    Schon einmal vielen Dank im Voraus!!!

  • #2
    PHP-Code:
    function speichern($dateiname) {
       
    $rest=substr($dateiname,0,-4);
       echo 
    $rest.'<br />';
       echo 
    '<pre>'.print_r($_POST1).'</pre>';
    #   echo $_POST[$rest][2];

    Ausgabe?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Hi,

      also das wird ausgegeben:

      test

      Array
      (
      [test] => speichern
      [Anzahli] => 0
      [Anzahl] => 0
      )

      Und nun?

      MfG, Ozzy

      Kommentar


      • #4
        Original geschrieben von Ozzy
        Und nun?
        Nun stellen wir fest, dass du uns nicht die Wahrheit gesagt hast - denn Felder mit Namen wie "feld[1]" waren offenbar nicht vorhanden (oder werden nicht per POST übertragen).
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Hi,

          also wenn ich das Textfeld umbenenne, also z.B. "anzahl[i]", dann bekomme ich folgende Aufagbe:

          test

          Array
          (
          [anzahl] => Array
          (
          [1] => 1
          [2] => 2
          [3] => 3
          [4] => 4
          [5] => 5
          [6] => 6
          [7] => 7
          [8] => 8
          )

          [test] => speichern
          [Anzahli] => 0
          [Anzahl] => 0
          )

          Sieht schon besser aus, oder? Also die Zahlen stimmen auch mit dem überein, was ich eingegeben hatte...

          Kommentar


          • #6
            ich weiß ja nicht so genau was Du vorhast, aber so kannste ein Formular machen und die Eingabe abfragen:

            PHP-Code:
            <?php

            // dieser Teil kann auch auf der nächsten Seite stehn

            if (isset($_POST['feld1'])) 
                {
                
            $datei = ($_POST['feld1']).'.csv';
                echo 
            $datei;
                }
            ?>

            // falls es auf ner anderen Seite weitergeht, den Dateinamen
            // in form action ändern

            <form name="form1" method="post" action="file.php" >
              Dateiname: 
              <input type="text" name="feld1">
              .csv 
            </form>

            Kommentar


            • #7
              Nun stellen wir fest, dass du uns nicht die Wahrheit gesagt hast - denn Felder mit Namen wie "feld[1]" waren offenbar nicht vorhanden (oder werden nicht per POST übertragen).
              Ja, ich hatte mich vertippt. Es sollte natürlich nicht "feld", sondern "test" heißen.

              Hier noch einmal die entsprechenden Auszüge aus meinem Code:

              PHP-Code:
              <?

              echo"<input type='Text' name='test[".$j."]' value='".$Daten[0]."'>";
              echo "<input type='Submit' name='speichern1' value='speichern'>";

              if (isset($_REQUEST['speichern1'])) {
                 speichern('test.csv');
              }

              function speichern($dateiname) {
                 $rest=substr($dateiname,0,-4);
                 echo $rest.'<br />';
                 echo '<pre>'.print_r($_POST, 1).'</pre>';
              }

              ?>
              In dem Formular sind auch noch andere Eingabefelder, es sollen aber nur die "test[...]" verarbeitet werden.
              Doch wie muss ich dann dieses $_POST umschreiben?


              Hoffe, jetzt ist es etwas klarer, Ozzy

              Kommentar


              • #8
                Original geschrieben von Ozzy
                Hoffe, jetzt ist es etwas klarer
                Du hast dir doch jetzt mittels print_r die Struktur angesehen, mit der die Daten in $_POST abgebildet werden - also was ist dir jetzt noch unklar ...?
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Hm, jetzt geht es auf einmal. Vorher wollte er das
                  $_POST[$rest][$i]
                  einfach nicht nehmen...

                  Noch einmal vielen Dank für Eure ganze Hilfe!!!

                  MfG, Ozzy

                  Kommentar

                  Lädt...
                  X