[Variablen] Textarea-Variablen immerwieder weitergeben

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

  • [Variablen] Textarea-Variablen immerwieder weitergeben

    Hallo Leute...

    habe ein Problem mit dem Übergeben des Inhaltes eine Textareas. Ich skizziere mal meine Verarbeitung:

    PHP-Code:

    $text 
    $_POST['text'];
    $data '<textarea name="text" rows="10" cols="43" wrap="virtual" class="eingabe">'.$text.'</textarea>';
    $this->page eregi_replace("{content}"$data$this->page); 
    Ich lese die Daten ein, validiere diese und gebe sie wieder im Formular aus, ggf. zeige ich fehlende oder fehlerhafte Eingabefelder an. Das heißt, dass ich die Inhalte der Felder immerwieder ins Formular stelle, bis alle Inhalte korrekt sind. Funktioniert bei einfachen Eingabefelder super, aber leider nicht beim Textarea...

    Folgendes Porblem taucht auf...

    ...wenn ich das Formular aufbaue, dem Textarea im Browser Inhalt verpasse und auf den submit-Button drücke, dann wird der Inhalt nach der Validierung wieder im Textarea ausgegeben, so wie ich es will. Wenn ich aber wieder auf submit drücke, dann bleibt das Textarea leer...

    Obwohl nach dem ersten validieren im HTML zwischen dem <textarea></textarea> nun Inhalt steht und ebenso im Browser-Textarea, werden die Daten nicht weiter gegeben.

    Kann mir ggf. jemand helfen? Im Grunde eine einfache Sache, aber ich sitze nun seit Tage daran und komme da nicht weiter...

    vielen dank

    Kald

  • #2
    Schreib mal ganz oben in deinem Script:
    PHP-Code:
    var_dump($_POST['text']); 
    und schau ob wirklich nur beim ersten Submit die Daten angezeigt werden. Was gibt das beim 2. Senden für eine Ausgabe ? Das error Reporting haste voll aufgedreht ?
    PHP-Code:
    error_reporting(E_ALL); 
    am Anfang deines Scriptes.

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      danke jahlives... also

      PHP-Code:
      var_dump($_POST['text']); 
      gibt nach dem 1. submit 'string(n)' aus und nach dem 2. NULL

      PHP-Code:
      error_reporting(E_ALL); 
      zeigt mir nach jedem Submit eine 2039 an... werde leider da aber nicht sonderlich schlau daraus.

      allerdings hat...

      PHP-Code:
      print_r($_POST); 
      folgendes ergeben:

      1. submit -> [text] => balblabla
      2. submit -> [text] => balblabla
      3. submit -> [text] einfach weg?????

      Kommentar


      • #4
        Poste mal den Code der Verarbeitung

        Gruss

        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          hoffe es ist das was du meinst...

          $post beinhaltet natürlich $_POST

          PHP-Code:
          function validateForm($post)
              {
                  
          $ag            =    $post['ag'];
                  
          $an            =    $post['an'];        
                  
          $name        =    $post['name'];
                  
          $vorname     =    $post['vorname'];
                  
          $strasse     =    $post['str'];
                  
          $plz         =    $post['plz'];
                  
          $ort         =    $post['ort'];
                  
          $vorwahl     =    $post['vorwahl'];
                  
          $telefon    =    $post['telefon'];
                  
          $mobil         =    $post['mobil'];
                  
          $email         =    $post['email'];
                  
          $pdf         =    $post['pdf'];
                  
          $betreff     =    $post['betreff'];
                  
          $text        =   $post['text']; 
                  
                  
                  
          $dataAr = array();
                  
          $dataAr[] = '<form action="index.php?id=formular" method="post">';
                  
          $dataAr[] = '<table width="100%" border="0" cellpadding="0" cellspacing="0">';
                  
          $dataAr[] = '<tr><td><H1>Kontaktformular</H1><br /></td></tr>';
                  
          $dataAr[] = '<tr><td align="left">Bitte füllen Sie das Formular aus. Mit * markierten Felder sind Pflichtfelder. ';
                  
          $dataAr[] = 'Eine rote Umrahmung deutet auf fehlende oder fehlerhafte Eingaben.</td></tr>';
                  
          $dataAr[] = '<tr><td>&nbsp;</td></tr>';
                  
          $dataAr[] = '<tr><td>';
                  
          $dataAr[] = '<table width="100%" border="0" cellspacing="0" cellpadding="0">';
                  
          $dataAr[] = '<tr><td></td><td align="right">';
                  
          $dataAr[] = 'Arbeitgeber&nbsp;<input type="radio" name="ag" value="">';
                  
          $dataAr[] = 'Arbeitnehmer&nbsp;<input type="radio" name="an" value="" CHECKED>';
                  
          $dataAr[] = '</td></tr>';
                  
          $dataAr[] = '<tr><td>Name:*</td><td align="right">';
                  
          $dataAr[] = $this->validateFields('not_clear''name'$name);
                  
          $dataAr[] = '</td></tr><tr><td>Vorname:*</td><td align="right">';
                  
          $dataAr[] = $this->validateFields('not_clear''vorname'$vorname);
                  
          $dataAr[] = '</td></tr><tr><td>Stra&szlig;e / Hausnr.:</td><td align="right">';
                  
          $dataAr[] = '<input type="text" name="str" size="30" maxlength="50" value="'.$strasse.'" class="eingabe">';
                  
          $dataAr[] = '</td></tr><tr><td>PLZ/Ort:</td><td align="right">';
                  
          $dataAr[] = '<input type="text" name="plz" size="5" maxlength="5" value="'.$plz.'" class="eingabe">';
                  
          $dataAr[] = '<input type="text" name="ort" size="20" maxlength="50" value="'.$ort.'" class="eingabe">';
                  
          $dataAr[] = '</td></tr><tr><td>Vorwahl/Telefon:</td><td align="right">';
                  
          $dataAr[] = '<input type="text" name="vorwahl" size="5" maxlength="10" value="'.$vorwahl.'" class="eingabe">';
                  
          $dataAr[] = '<input type="text" name="telefon" size="20" maxlength="20" value="'.$telefon.'" class="eingabe">';
                  
          $dataAr[] = '</td></tr><tr><td>Mobil:</td><td align="right">';
                  
          $dataAr[] = '<input type="text" name="mobil" size="30" maxlength="20" value="'.$mobil.'" class="eingabe">';
                  
          $dataAr[] = '</td></tr><tr><td>E-Mail:*</td><td align="right">';
                  
          $dataAr[] = $this->validateFields('email''email'$email);
                  
          $dataAr[] = '</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td></tr>';
                  
          $dataAr[] = '</table>';
                  
          $dataAr[] = '</td></tr><tr><td>';
                  
          $dataAr[] = '<table width="100%" border="0" cellspacing="0" cellpadding="0">';
                  
          $dataAr[] = '<tr><td align="left">';
                  
          $dataAr[] = '<input type="checkbox" name="pdf" value="'.$pdf.'">';
                  
          $dataAr[] = 'Info-Broschüre im PDF-Format zusenden.';
                  
          $dataAr[] = '</td></tr><tr><td>&nbsp;</td></tr>';
                  
          $dataAr[] = '<tr><td align="right">Betreff:&nbsp;&nbsp;';
                  
          $dataAr[] = '<input type="text" name="betreff" size="40" maxlenght="60" value="'.$betreff.'" class="eingabe">';
                  
          $dataAr[] = '</td></tr><tr><td>&nbsp;</td></tr>';
                  
          $dataAr[] = '<tr><td align="left">Ihre Mitteilung:*<br /></td></tr><tr align="left"><td align="right">';
                  
          $dataAr[] = $this->validateFields('text''text'$text);
                  
          $dataAr[] = '</td></tr><tr><td>&nbsp;</td></tr>';
                  
          $dataAr[] = '</table>';
                  
          $dataAr[] = '</td></tr><tr><td>';
                  
          $dataAr[] = '<table width="100%" align="center" border="0" cellspacing="0" cellpadding="0">';
                  
          $dataAr[] = '<tr><td align="center">';
                  
          $dataAr[] = '<input type="reset" value="L&ouml;schen" name="loeschen">';
                  
          $dataAr[] = '</td><td align="center">';
                  
          $dataAr[] = '<input type="submit" value="Absenden" name="submit">';
                  
          $dataAr[] = '</td></tr>';
                  
          $dataAr[] = '</table>';
                  
          $dataAr[] = '</td></tr><tr><td>&nbsp;</td></tr>';
                  
          $dataAr[] = "</table>";        
                  
          $dataAr[] = "</form>";        
                  
          $dataAr[] =  print_r($_POST);
                  
          $dataAr[] =  error_reporting(E_ALL);        
                  
          $data "";
                  foreach (
          $dataAr as $value)
                  {
                      
          $data $data."$value\n";
                  }
                  
          $this->page eregi_replace("{content}"$data$this->page); 
          die Funktion validateFields('text', 'text', $text);

          PHP-Code:
          function validateFields($arg$field$value)
          {
          if (
          $arg == 'text')
          {
             return 
          '<textarea name="'.field.'" rows="10" cols="43" wrap="virtual" class="eingabe">'.$value.'</textarea>';
          }

          gruß kald

          Kommentar


          • #6
            Also in der 2. Funktion fehlt bestimmt ein $ vor field. Ausserdem werden Werte aus dem POST Array so angesprochen:
            $_POST['wert']
            Nebenbei macht auch das keinen Sinn
            PHP-Code:
            $dataAr[] =  print_r($_POST);
            $dataAr[] =  error_reporting(E_ALL); 
            print_r($_POST);
            und das error_reporting kommt immer als erste Zeile eines Scriptes
            PHP-Code:
            error_reporting(E_ALL); 
            und nicht auf eine Var speichern.

            Gruss

            tobi
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              ich danke dir vielmals jahlives

              es war das fehlende $ !!!

              so etwas übersieht man schnell und sucht sich oft den wolf, aber schön dass du drüber geschaut hast.

              ok, ob es nicht so sinnvoll war mit dem print_r($_POST) weiß ich nicht, hab aber dennoch die inhalte gesehen..

              danke noch mals

              schönes wochenende

              gruß kald

              Kommentar


              • #8
                this->page = eregi_replace("{content}", $data, $this->page);
                warum
                1)falsche ausdruck in erregi?
                2)warum überhaupt erregi, wenn preg_replace viel schneller ist?
                3) warum erregi und preg, wenn str_replace die passende funktion ist?
                4)warum $dataAr[] ? wenn du der ganze inhalt von deinem array in einer schleife in ein string packst?
                du könntest einfach von anfang an
                $data.="...."; machen


                hast du Angst, dass dein script zu schnell laufen kann?
                Slava
                bituniverse.com

                Kommentar


                • #9
                  hallo slava

                  1. bin viel am probieren... klar falscher ausdruck
                  2. siehe 1 und auch klar preg besser
                  3. str_repalce eingebaut
                  4. $data. leuchtet ein... gemacht

                  ja, wenn es zu schnell läuft, kriege ich ja nix mit

                  lg kald

                  Kommentar

                  Lädt...
                  X