dieselross: Kommentare zur Auswertung durch PHP einbinden?

Moin!

Ich erstelle eine Auswertung für ein Formular mittels FormsToGo. Funktioniert auch so weit ganz gut.
Ich kann Platzhalter für Fehlermeldungen einbauen, die beim Nichtausfüllen von Pflichtfeldern angezeigt werden.

Nun möchte ich diese Platzhalter gerne "mißbrauchen". Ich möchte sie als style-Anweisungen ausgestalten, so daß sich die Optik des Pflichtfeldes beim Nichtausfüllen ändert. Das gelingt mir auch bei select Feldern aber ich weiß nicht, wie ich die Kommentare sinnvoll in die input Felder einbinden kann.

Any Ideas?

siehe: http://relaunch.gs-barnstorf.de/kontakt.html

Gruß
dieselross

--
- life's for learning -
Ceterum censeo IE esse delendam
  1. Hi dieselross!

    Nun möchte ich diese Platzhalter gerne "mißbrauchen". Ich möchte sie als style-Anweisungen ausgestalten, so daß sich die Optik des Pflichtfeldes beim Nichtausfüllen ändert.

    Und wie? Gibt es dazu keinen Quelltext?

    Das gelingt mir auch bei select Feldern [...]

    Nein. Aber mein Firefox z. B. interpretiert dein fehlerhaftes Markup großzügig.

    [...] aber ich weiß nicht, wie ich die Kommentare sinnvoll in die input Felder einbinden kann.

    CSS-Anweisungen sind keine Kommentare. Wenn du sie im style-Attribut eines Elements unterbringen möchtest, dann tu das auch.
    Besser wäre jedoch, die Elemente mit einer Klasse zu versehen, die die entsprechenden Formatierungen vornimmt.

    MfG H☼psel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
    1. Hi Hopsel,

      Erst 'mal Danke für die schnelle Antwort.

      Das gelingt mir auch bei select Feldern [...]
      Nein. Aber mein Firefox z. B. interpretiert dein fehlerhaftes Markup großzügig.

      Ok, daß mein Markup noch sehr buggy ist, wußte ich. Hatte auch noch nicht validiert weil ich da ein Blutbad auf mich zukommen sah ;-).

      CSS-Anweisungen sind keine Kommentare. Wenn du sie im style-Attribut eines Elements unterbringen möchtest, dann tu das auch.

      Ok, das war wohl mißverständlich. Das php liest die (als Kommentar eingebundenen) Platzhalter aus und ersetzt sie im generierten html durch entsprechend vorgesehenen Text. Dieser kann alles mögliche sein, so eben auch eine style-Anweisung. Was ich im Endeffekt will ist, daß die nicht korrekt ausgefüllten Pflichtfelder z. B. statt wie bisher gelb, dann fett rot umrandet werden.

      Besser wäre jedoch, die Elemente mit einer Klasse zu versehen, die die entsprechenden Formatierungen vornimmt.

      Ja, an Klassen hatte ich auch schon gedacht, bin aber noch nicht recht weiter gekommen.

      Gruß
      dieselross

      --
      - life's for learning -
      Ceterum censeo IE esse delendam
      1. Hi dieselross!

        Was ich im Endeffekt will ist, daß die nicht korrekt ausgefüllten Pflichtfelder z. B. statt wie bisher gelb, dann fett rot umrandet werden.

        Na das ist mir schon klar. Aber ich steh im Moment hilflos vor dir und habe keine Ahnung, wie ich die helfen soll.
        Es gibt keinen Ansatzpunkt außer dir zu sagen, dass du das am besten über eine Klasse machst.

        Ja, an Klassen hatte ich auch schon gedacht, bin aber noch nicht recht weiter gekommen.

        Für weitere Hilfe brauchen wir mehr Informationen über das Wie und das Womit.

        MfG H☼psel

        --
        "It's amazing I won. I was running against peace, prosperity, and incumbency."
        George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
        Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
        1. Für weitere Hilfe brauchen wir mehr Informationen über das Wie und das Womit.

          Ok. Ich komme im Moment (Job) nicht an meinen Quellcode (php) heran. Den html-Quellcode kannst Du ja sehen. Den php-Code liefere ich heute abend nach. Nochmals herzlichen Dank für die Hilfsbereitschaft.

          Gruß
          dieselross

          --
          - life's for learning -
          Ceterum censeo IE esse delendam
          1. Hier der versprochene php-Code:

            .zip

            Gruß
            dieselross

            --
            - life's for learning -
            Ceterum censeo IE esse delendam
            1. Hi dieselross!

              Hier der versprochene php-Code:

              Okay! =)

              Du hast die Felder <!--ERRORMSG:Foobar-->. Das müsste so aussehen:

              <select id= "anrede" name="Anrede" size="1"<!--ERRORMSG:Anrede-->>  
                <option></option>  
                <option>Frau</option>  
                <option>Herr</option>  
                <option>Firma</option>  
              </select>
              

              Achte auf die Anzahl der < und >.

              In der kontakt.php hast du für jedes ERROR-Feld folgendes:
              $FTGErrorMessage['Foobar'] = '';

              Und außerdem:
              $errorclass = ' class="error"';

              Dann kannst du anfangen zu überprüfen und ggf. die Klasse zu generieren:

              if (!IsValid($FTGFoobar)) {  
                $FTGErrorMessage['Foobar'] = $errorclass;  
                $validationFailed = true;  
              }
              

              Jetzt musst du im CSS nur noch die Klasse "error" stylen.

              Wenn du noch Fragen hast, dann frag ruhig. Aber versuch ruhig erst mal selbst, ein bisschen zu basteln.

              MfG H☼psel

              --
              "It's amazing I won. I was running against peace, prosperity, and incumbency."
              George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
              Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
              1. Wenn du noch Fragen hast, dann frag ruhig. Aber versuch ruhig erst mal selbst, ein bisschen zu basteln.

                Genau das was ich an diesem Forum so mag! Hilfe zur Selbsthilfe!
                Danke!
                Wenn ich dann so weit bin, darf ich das Endprodukt dann zur Beurteilung vorlegen?

                Gruß
                dieselross

                --
                - life's for learning -
                Ceterum censeo IE esse delendam
              2. In der kontakt.php hast du für jedes ERROR-Feld folgendes:
                $FTGErrorMessage['Foobar'] = '';

                Habe ich gefunden. Allerdings mit "Inhalt" zwischen den ''. Verstehe ich das richtig, daß der 'raus muß?

                Und außerdem:
                $errorclass = ' class="error"';

                Habe ich nicht gefunden. Heißt, ich muß diesen Code hinzufügen?

                Dann kannst du anfangen zu überprüfen und ggf. die Klasse zu generieren:

                if (!IsValid($FTGFoobar)) {

                $FTGErrorMessage['Foobar'] = $errorclass;
                  $validationFailed = true;
                }

                  
                Auch hinzufügen?  
                  
                
                > Jetzt musst du im CSS nur noch die Klasse "error" stylen.  
                  
                Ok, das kann ich.  
                  
                
                > Wenn du noch Fragen hast, dann frag ruhig. Aber versuch ruhig erst mal selbst, ein bisschen zu basteln.  
                  
                Sorry, da sind schon die ersten Fragen. Ich hab bisher ca. Null Ahnung von PHP. Vielleicht ist dieser Thread hier auch falsch platziert  
                  
                Gruß  
                dieselross
                
                -- 
                - life's for learning -  
                Ceterum censeo IE esse delendam
                
                1. Hi dieselross!

                  Im HTML ersetzen:

                  <select id= "anrede" name="Anrede" size="1"<!--ERRORMSG:Anrede-->>  
                    <option></option>  
                    <option>Frau</option>  
                    <option>Herr</option>  
                    <option>Firma</option>  
                  </select>
                  

                  Im PHP für jedes Formularelement, das du hast, zwischen "$FTGnachricht = strip_tags($FTGnachricht);" und "$validationFailed = false;" hinzufügen (Zeile 257). Dabei "Foobar" durch entsprechende Namen wie "Anrede", "Mail" oder "Betreff" ersetzen:
                  $FTGErrorMessage['Foobar'] = '';

                  Und außerdem gleich danach hinzufügen:
                  $errorclass = ' class="error"';
                  Beachte das Leerzeichen!

                  Die Überprüfung der einzelnen Formularfelder ersetzen. Im Prinzip reicht es, statt style="border: 2px solid red" class="error" zu schreiben. Allerdings schreibst du das ja mehrmals und deshalb habe ich das in eine Variable ausgelagert.

                  if (!IsValid($FTGFoobar)) {  
                    $FTGErrorMessage['Foobar'] = $errorclass;  
                    $validationFailed = true;  
                  }
                  

                  Erklärung:
                  Du hast ein HTML-Tag wie z. B. <h1>Meine private Homepage</h1>. Diese Überschrift möchtest du je nach Jahreszeit über CSS gestalten und fügst dazu dynamisch eine Klasse hinzu.
                  Wo kann die Klasse nur hin? Genau! <h1>
                                                   Hier ^
                  Dazu definieren wir uns sowas wie einen Platzhalter: <h1<!--MyHeadingClass-->>.

                  Im PHP definieren wir ein Array, das die Ersetzungstexte aufnimmt: $myReplacementStrings = array();. Dieses Array bekommt für unsere Klasse einen Eintrag, der vorerst leer sein muss: $myReplacementStrings['MyHeadingClass'] = ''.
                  Wieso leer? Nun, wir wollen nur Ostern und Weihnachten ein besonderes Styling für die Überschrift. Ansonsten reicht das Standardlayout und wir benötigen kein Klassenattribut für die Überschrift.

                  Weiter im PHP prüfen wir nun, ob Weihnachten oder Ostern ist:

                  if(OSTERN) {  
                    $myReplacementStrings['MyHeadingClass'] = ' class="ostern"';  
                  }  
                    
                  if(WEIHNACHTEN)  
                    $myReplacementStrings['MyHeadingClass'] = ' class="weihnachten"';  
                  }
                  

                  Schließlich ersetzen wir mit $codeHtmlForm = str_replace('<!--MyHeadingClass-->', $myReplacementStrings['MyHeadingClass'], $codeHtmlForm); den Platzhalter, den wir vorher im HTML-Code definiert hatten.

                  Was kann also passieren?
                  1. Es ist Ostern: <h1<!--MyHeadingClass-->> wird zu <h1 class="ostern">

                  2. Es ist Weihnachten. Analog zu 1.: <h1 class="weihnachten">

                  3. Es ist weder Weihnachten noch Ostern. Da wir im PHP-Code für $myReplacementStrings['MyHeadingClass'] einen leeren String als Standard angegeben haben, wird <h1<!--MyHeadingClass-->> zu <h1>.
                  Es wird also keine Klasse generiert. Alles wunderbar!

                  In deinem Fall würde eben keine Fehlerklasse generiert, weil eben nicht Weihnachten ist... äh... weil kein Fehler gemacht wurde. ;-)

                  Ich hoffe, das hilft weiter!

                  MfG H☼psel

                  --
                  "It's amazing I won. I was running against peace, prosperity, and incumbency."
                  George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
                  Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
                  1. Hi Hopsel

                    Also etwa so:

                      
                    $FTGAnrede = strip_tags($FTGAnrede);  
                    $FTGVorname = strip_tags($FTGVorname);  
                    $FTGName = strip_tags($FTGName);  
                    $FTGMail = strip_tags($FTGMail);  
                    $FTGAdressat = strip_tags($FTGAdressat);  
                    $FTGBetreff = strip_tags($FTGBetreff);  
                    $FTGnachricht = strip_tags($FTGnachricht);  
                      
                    $FTGErrorMessage[Anrede] = '';  
                    $FTGErrorMessage[Vorname] = '';  
                    $FTGErrorMessage[Name] = '';  
                    $FTGErrorMessage[Mail] = '';  
                    $FTGErrorMessage[Adressat] = '';  
                    $FTGErrorMessage[Betreff] = '';  
                    $FTGErrorMessage[nachricht] = '';  
                      
                    $validationFailed = false;  
                    $errorclass = ' class="error"';  
                      
                    # Fields Validations  
                      
                    if (!IsValid($FTGAnrede)) {  
                     $FTGErrorMessage['Anrede'] = $errorclass;  
                     $validationFailed = true;  
                    }  
                    if (!IsValid($FTGVorname)) {  
                     $FTGErrorMessage['Vorname'] = $errorclass;  
                     $validationFailed = true;  
                    }  
                    if (!IsValid($FTGName)) {  
                     $FTGErrorMessage['Name'] = $errorclass;  
                     $validationFailed = true;  
                    }  
                    if (!IsValid($FTGMail)) {  
                     $FTGErrorMessage['Mail'] = $errorclass;  
                     $validationFailed = true;  
                    }  
                    if (!IsValid($FTGAdressat)) {  
                     $FTGErrorMessage['Adressat'] = $errorclass;  
                     $validationFailed = true;  
                    }  
                    if (!IsValid($FTGBetreff)) {  
                     $FTGErrorMessage['Betreff'] = $errorclass;  
                     $validationFailed = true;  
                    }  
                    if (!IsValid($FTGnachricht)) {  
                     $FTGErrorMessage['nachricht'] = $errorclass;  
                     $validationFailed = true;  
                    }
                    

                    Ich hoffe, das hilft weiter!

                    Ich hoffe es auch. Überprüfen kann ich das erst heute abend.
                    Aber von der Logik her scheint es mir schlüssig, soweit ich den Quellcode verstehe.
                    Programmierlogik ist ja glücklicherweise immer ähnlich.

                    Gruß
                    dieselross

                    --
                    - life's for learning -
                    Ceterum censeo IE esse delendam
                    1. Hi dieselross!

                      Also etwa so:

                      $FTGErrorMessage[Anrede] = '';

                      $FTGErrorMessage[Vorname] = '';
                      $FTGErrorMessage[Name] = '';
                      $FTGErrorMessage[Mail] = '';
                      $FTGErrorMessage[Adressat] = '';
                      $FTGErrorMessage[Betreff] = '';
                      $FTGErrorMessage[nachricht] = '';

                        
                      Fast. Strings sollten in Anführungszeichen gesetzt werden. In diesem Fall in einfache:  
                      `$FTGErrorMessage['Anrede'] = '';`{:.language-php}  
                      Du siehst auch am Syntaxhighlighting, wo der Unterschied liegt.  
                        
                      
                      > `if (!IsValid(/*...*/)) {`{:.language-php}  
                      
                      Das ist nicht ganz richtig. IsValid ist ein von mir gewählter Pseudoname für eine Funktion, die die Gültigkeit der Variablen überprüft. Du musst dafür schon die für dich relevanten Funktionen einsetzen, z. B. `if(!CheckValueList_Anrede($FTGAnrede, 1, kMandatory)) {`{:.language-php}.  
                        
                        
                      
                      > Programmierlogik ist ja glücklicherweise immer ähnlich.  
                      
                      D. h. du hast Erfahrung mit einer anderen Programmiersprache?  
                        
                      MfG H☼psel
                      
                      -- 
                      "It's amazing I won. I was running against peace, prosperity, and incumbency."  
                      George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001  
                        
                      [Selfcode](http://community.de.selfhtml.org/fanprojekte/selfcode.htm): ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
                      
                      1. Hi Hopsel,

                        D. h. du hast Erfahrung mit einer anderen Programmiersprache?

                        Ein bißchen AppleScript, etwas VBA. Nicht viel, aber wenig ;-).

                        Gruß
                        dieselross

                        --
                        - life's for learning -
                        Ceterum censeo IE esse delendam
                  2. Hi Hopsel,

                    Im HTML ersetzen:
                    <select id= "anrede" name="Anrede" size="1"<!--ERRORMSG:Anrede-->>

                    ...

                    Gilt auch für:

                    <input id= "name" name="Name" type="text"<!--ERRORMSG:Name-->/>

                    und

                    <textarea id= "message" name="nachricht" rows="8" cols="40"<!--ERRORMSG:nachricht-->></textarea>

                    ???

                    Gruß
                    dieselross

                    --
                    - life's for learning -
                    Ceterum censeo IE esse delendam
                    1. Hi dieselross!

                      Im HTML ersetzen:
                      <select id= "anrede" name="Anrede" size="1"<!--ERRORMSG:Anrede-->>
                      ...

                      Gilt auch für:

                      <input id= "name" name="Name" type="text"<!--ERRORMSG:Name-->/>

                      und

                      <textarea id= "message" name="nachricht" rows="8" cols="40"<!--ERRORMSG:nachricht-->></textarea>

                      ???

                      Ich weiß nicht...
                      Was würdest du denn sagen? =)

                      MfG H☼psel

                      --
                      "It's amazing I won. I was running against peace, prosperity, and incumbency."
                      George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
                      Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
                      1. Hi Hopsel,

                        Ich weiß nicht...
                        Was würdest du denn sagen? =)

                        Das Syntax-Coloring scheint hinzuhauen. Ist zumindest nicht rot :-)
                        Ich hatte aber zu Hause etwas ähnliches versucht und da war's eben rot.
                        Und der Validator meckert auch. Daher die Unsicherheit.

                        Gruß
                        dieselross

                        --
                        - life's for learning -
                        Ceterum censeo IE esse delendam
                      2. Hi Hopsel,

                        Ich weiß nicht...
                        Was würdest du denn sagen? =)

                        Das Syntax-Coloring läßt Gutes vermuten. Ist zumindest nicht rot :-)
                        Aber der Validator meckert. Daher die Unsicherheit.

                        Gruß
                        dieselross

                        --
                        - life's for learning -
                        Ceterum censeo IE esse delendam
                        1. Hi dieselross!

                          Das Syntax-Coloring läßt Gutes vermuten. Ist zumindest nicht rot :-)
                          Aber der Validator meckert. Daher die Unsicherheit.

                          Moment. Lässt du die kontakt.html direkt anzeigen und verweist im action-Attribut auf die kontakt.php?

                          Wenn ja, dann müssen wir den Plan ändern. =)

                          Folgender HTML-Code:

                          <select id="anrede" name="Anrede" size="1">  
                          <input id="name" name="Name" type="text" />  
                          <textarea id="message" name="nachricht" rows="8" cols="40"></textarea>
                          

                          Und im PHP musst du dann
                          $codeHtmlForm = str_replace('<!--ERRORMSG:Anrede-->', $FTGErrorMessage['Anrede'], $codeHtmlForm);
                          durch
                          $codeHtmlForm = str_replace('id="name"', 'id="name"'.$FTGErrorMessage['Anrede'], $codeHtmlForm);
                          ersetzen.

                          Wobei id="name" natürlich jeweils angepasst werden muss.
                          Das funktioniert, da die ID eines Elements im gesamten HTML-Dokument eindeutig ist.

                          MfG H☼psel

                          --
                          "It's amazing I won. I was running against peace, prosperity, and incumbency."
                          George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
                          Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
                          1. Hi Hopsel,

                            Also so?

                            $codeHtmlForm = str_replace('id= "anrede" name="Anrede" size="1"', 'id= "anrede" name="Anrede" size="1"'.$FTGErrorMessage['Anrede'], $codeHtmlForm);

                            Ich vermute, ich muß ja den gesamten Text ersetzen, oder ist die Stelle, an der die Klasse eingefügt wird egal?

                            Gruß
                            dieselross

                            --
                            - life's for learning -
                            Ceterum censeo IE esse delendam
                            1. Hi dieselross!

                              $codeHtmlForm = str_replace('id= "anrede" name="Anrede" size="1"', 'id= "anrede" name="Anrede" size="1"'.$FTGErrorMessage['Anrede'], $codeHtmlForm);

                              Warum das Leerzeichen nach "id="?

                              Ich vermute, ich muß ja den gesamten Text ersetzen, oder ist die Stelle, an der die Klasse eingefügt wird egal?

                              Die Stelle ist egal. Ich empfehle, exakt so vorzugehen, wie ich´s beschrieben habe. Das erscheint mir am saubersten.

                              MfG H☼psel

                              --
                              "It's amazing I won. I was running against peace, prosperity, and incumbency."
                              George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
                              Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
                              1. Hi Hopsel,

                                Warum das Leerzeichen nach "id="?

                                Weil's im Original-html so steht. Ich hatte den String da 'rauskopiert. Erschien mir so am sichersten.

                                Gruß
                                dieselross

                                --
                                - life's for learning -
                                Ceterum censeo IE esse delendam
                              2. Hi Hopsel,

                                Die Stelle ist egal. Ich empfehle, exakt so vorzugehen, wie ich´s beschrieben habe. Das erscheint mir am saubersten.

                                Ist ja alles noch viel schlimmer.
                                Da ich mit weißer Schrift arbeite, habe ich den "options" einen Hintergrund zugewiesen.
                                Da aber border als Auszeichnung für selects nicht zu funktionieren scheint, habe ich mich entschlossen, die error-Klasse als Änderung des Hintergrundes auszuführen.
                                D. h. ich muß auch den einzelnen options die error-Klasse zuweisen.
                                Ich werde wohl ganze Passagen aus dem html ersetzen müssen, oder sehe ich das falsch?

                                Gruß
                                dieselross

                                --
                                - life's for learning -
                                Ceterum censeo IE esse delendam
                                1. ... also etwa so:

                                  if (!CheckValueList_Anrede($FTGAnrede, 1, kMandatory)) {  
                                   $FTGErrorMessage['Anrede'] = 'id="anrede" class="error" name="Anrede" size="1">  
                                        <option class="error"></option>  
                                        <option class="error">Frau</option>  
                                        <option class="error">Herr</option>  
                                        <option class="error">Firma</option>';  
                                   $validationFailed = true;  
                                  }
                                  

                                  und

                                    
                                   $codeHtmlForm = str_replace('id= "anrede" name="Anrede" size="1">  
                                        <option></option>  
                                        <option>Frau</option>  
                                        <option>Herr</option>  
                                        <option>Firma</option>', $FTGErrorMessage['Anrede'], $codeHtmlForm);  
                                  
                                  

                                  Richtig?

                                  Gruß
                                  dieselross

                                  --
                                  - life's for learning -
                                  Ceterum censeo IE esse delendam
                                  1. Hi dieselross!

                                    Richtig?

                                    Nein.

                                    if (!CheckValueList_Anrede($FTGAnrede, 1, kMandatory)) {  
                                     $FTGErrorMessage['Anrede'] = ' class="error"';  
                                     $validationFailed = true;  
                                    }
                                    

                                    und

                                      
                                    $codeHtmlForm = str_replace('id="anrede"', 'id="anrede"'.$FTGErrorMessage['Anrede'], $codeHtmlForm);  
                                    
                                    

                                    Voraussetzung ist, dass du das Leerzeichen bei id= "anrede" eliminierst. Und das solltest du wirklich tun.

                                    MfG H☼psel

                                    --
                                    "It's amazing I won. I was running against peace, prosperity, and incumbency."
                                    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
                                    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
                                    1. Hi Hopsel,

                                      jetzt hab' ich alles mehrfach überprüft: Ich komm' nicht dahinter, woher diese Fehlermeldung rührt.

                                      Parse error: syntax error, unexpected '=' in /foo/foo/foo/foo/relaunch.gs-barnstorf.de/kontakt.php on line 329

                                      Gruß
                                      dieselross

                                      --
                                      - life's for learning -
                                      Ceterum censeo IE esse delendam
                                      1. Hi dieselross!

                                        Parse error: syntax error, unexpected '=' in /foo/foo/foo/foo/relaunch.gs-barnstorf.de/kontakt.php on line 329

                                        Ohne Quellcode kann ich dir da auch nicht weiterhelfen.
                                        Lade mal den neuesten Stand der kontakt.php hoch.

                                        MfG H☼psel

                                        --
                                        "It's amazing I won. I was running against peace, prosperity, and incumbency."
                                        George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
                                        Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
                                        1. Hi Hopsel,

                                          guckst du: hier

                                          Gruß
                                          dieselross

                                          --
                                          - life's for learning -
                                          Ceterum censeo IE esse delendam
                                          1. Hi dieselross!

                                            $codeHtmlForm = str_replace('id= "anrede"', id= "anrede".$FTGErrorMessage['Anrede'], $codeHtmlForm);  
                                            $codeHtmlForm = str_replace('id="name"', 'id="name"'.$FTGErrorMessage['Name'], $codeHtmlForm);
                                            

                                            Fällt dir was auf?
                                            Die zweite Zeile ist richtig. Die erste falsch.

                                            MfG H☼psel

                                            --
                                            "It's amazing I won. I was running against peace, prosperity, and incumbency."
                                            George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
                                            Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
                                            1. Hi Hopsel,

                                              Fällt dir was auf?
                                              Die zweite Zeile ist richtig. Die erste falsch.

                                              Ja, das war mir zwischenzeitlich auch schon aufgefallen. Habe ich bereits gefixed.
                                              Aber daß die werte meiner Selects nicht übernommen werden, das verstehe ich nicht.
                                              (siehe anderes Posting)

                                              Gruß
                                              dieselross

                                              --
                                              - life's for learning -
                                              Ceterum censeo IE esse delendam
                                          2. Hi Hopsel,

                                            silly me!! Ich hatte die falsche kontakt.php hochgeladen! Es ist alles gut!!
                                            Na ja, fast. Die eingegebenen Werte der selects werden in die php nicht übernommen.
                                            Syntaxfehler bei der fieldvalue-Angelegenheit?

                                            Gruß
                                            dieselross

                                            --
                                            - life's for learning -
                                            Ceterum censeo IE esse delendam
                                            1. Hi dieselross!

                                              silly me!! Ich hatte die falsche kontakt.php hochgeladen! Es ist alles gut!!
                                              Na ja, fast. Die eingegebenen Werte der selects werden in die php nicht übernommen.

                                              Nähere Beschreibung und Quellcode erforderlich.

                                              Syntaxfehler bei der fieldvalue-Angelegenheit?

                                              Glaube ich nicht.

                                              MfG H☼psel

                                              --
                                              "It's amazing I won. I was running against peace, prosperity, and incumbency."
                                              George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
                                              Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
                                              1. Hi Hopsel,

                                                danke für die unendliche Geduld.

                                                Nähere Beschreibung und Quellcode erforderlich.

                                                Der Quellcode liegt unter diesem Link.

                                                Gruß
                                                dieselross

                                                --
                                                - life's for learning -
                                                Ceterum censeo IE esse delendam
                                                1. Hi Hopsel,

                                                  ... und die Beschreibung -

                                                  na ja, die Werte aus den Select-Feldern werden einfach nicht übernommen in die php-generierte Version.
                                                  Wenn Du das Formular nur teilweise ausfüllst, sollten wenigstens die korrekt ausgefüllten Felder in der Fehler-Version stehen bleiben.
                                                  Das ist z. Zt. nicht der Fall bzw. funktioniert nur bei den Input-Feldern.

                                                  Gruß
                                                  dieselross

                                                  --
                                                  - life's for learning -
                                                  Ceterum censeo IE esse delendam
                                                2. Hi dieselross!

                                                  danke für die unendliche Geduld.

                                                  Eine willkommene Abwechslung. =)
                                                  Wenn ich manchmal bissl genervt klinge, dann musst du das entschuldigen. Ich sitze hier an einem Delphiprogramm und das macht nicht immer das, was man erwartet.

                                                  Der Quellcode liegt unter diesem Link.

                                                  Das ist aber immer noch der Fehler in Zeile 329 drin.

                                                  Zu deinem Problem:
                                                  Du musst in den Select-Tags die Value-Attribute setzen.

                                                  Aus

                                                  <select id="anrede" name="Anrede" size="1">  
                                                    <option></option>  
                                                    <option>Frau</option>  
                                                    <option>Herr</option>  
                                                    <option>Firma</option>  
                                                  </select>
                                                  

                                                  muss also

                                                  <select id="anrede" name="Anrede" size="1">  
                                                    <option value=""></option>  
                                                    <option value="Frau">Frau</option>  
                                                    <option value="Herr">Herr</option>  
                                                    <option value="Firma">Firma</option>  
                                                  </select>
                                                  

                                                  werden.
                                                  Ebenso bei allen anderen Selects.

                                                  MfG H☼psel

                                                  --
                                                  "It's amazing I won. I was running against peace, prosperity, and incumbency."
                                                  George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
                                                  Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
                                                  1. Hi Hopsel,

                                                    Das ist aber immer noch der Fehler in Zeile 329 drin.

                                                    ????? Ich war wohl etwas übermüdet.

                                                    Zu deinem Problem:
                                                    Du musst in den Select-Tags die Value-Attribute setzen.

                                                    Aus

                                                    <select id="anrede" name="Anrede" size="1">

                                                    <option></option>
                                                      <option>Frau</option>
                                                      <option>Herr</option>
                                                      <option>Firma</option>
                                                    </select>

                                                    
                                                    > muss also  
                                                    > ~~~html
                                                    
                                                    <select id="anrede" name="Anrede" size="1">  
                                                    
                                                    >   <option value=""></option>  
                                                    >   <option value="Frau">Frau</option>  
                                                    >   <option value="Herr">Herr</option>  
                                                    >   <option value="Firma">Firma</option>  
                                                    > </select>
                                                    
                                                    

                                                    werden.

                                                    Aaah! Das scheint sinnvoll.
                                                    Aber kannst du mir auch erklären, warum die Werte nicht so übernommen werden?
                                                    In die resultierende Mail werden sie doch auch übernommen.

                                                    Gruß
                                                    dieselross

                                                    --
                                                    - life's for learning -
                                                    Ceterum censeo IE esse delendam
                                                    1. Hi dieselross!

                                                      Aber kannst du mir auch erklären, warum die Werte nicht so übernommen werden?

                                                      In der Funktion ProcessSelect() [1] gibt es folgenden Code:

                                                        $optionPattern = '/(<option[^>]+value=[\'\"]?\Q' . $fieldValue . '\E[\'\"\s]+[^>]*)(>)/i';  
                                                        $replacementPattern = '\1 selected="selected"\2';  
                                                        $modifiedSelectTag = preg_replace($optionPattern, $replacementPattern, $modifiedSelectTag);
                                                      

                                                      In der Variable $optionPattern siehst du das nach einem <option>-Tag mit einem value-Attribut, das den entsprechenden Wert hat, gesucht wird.
                                                      Möglichkeit 1: Du fügst die value-Attribute hinzu.
                                                      Möglichkeit 2: Du veränderst das Suchmuster.

                                                      Möglichkeit 1 ist die wesentlich leichtere Aufgabe für dich. Deshalb habe ich sie gewählt. =)

                                                      In die resultierende Mail werden sie doch auch übernommen.

                                                      Die Werte sind ja auch da. Sie w(e|u)rden bloß nicht richtig ins HTML integriert.

                                                      [1] Diese Funktion ist nur dafür da, das Attribut selected="selected" einzufügen und somit eine Vorauswahl, die der Nutzer getroffen hat, zu setzen.

                                                      MfG H☼psel

                                                      --
                                                      "It's amazing I won. I was running against peace, prosperity, and incumbency."
                                                      George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
                                                      Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
                                                      1. Hi Hopsel,

                                                        ... und wieder 'was gelernt!

                                                        So'n Mist, jetzt hatte ich mich schon auf ein augefülltes Wochenende eingestellt...
                                                        und dann ist es eine Sache von 10 min. ;-)
                                                        Meine Freundin wird mich also voll mit Beschlag belegen können. :-)
                                                        Nochmals herzlichen Dank.

                                                        Gruß
                                                        dieselross

                                                        --
                                                        - life's for learning -
                                                        Ceterum censeo IE esse delendam
                                2. Hi dieselross!

                                  D. h. ich muß auch den einzelnen options die error-Klasse zuweisen.
                                  Ich werde wohl ganze Passagen aus dem html ersetzen müssen, oder sehe ich das falsch?

                                  Ja, siehst du falsch. Du kannst mit CSS doch auch auf die Options zugreifen:
                                  select.error option { }

                                  MfG H☼psel

                                  --
                                  "It's amazing I won. I was running against peace, prosperity, and incumbency."
                                  George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
                                  Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
                                  1. Hi Hopsel,

                                    select.error option { }

                                    Genial! An diese Art von Selektor hatte ich nicht gedacht.
                                    Werde es heute abend 'mal zusammenstöpseln und dann gehe ich an die nächste Baustelle ;-),

                                    Nochmals herzlichen Dank! Wieder viel dazugelernt!

                                    Gruß
                                    dieselross

                                    --
                                    - life's for learning -
                                    Ceterum censeo IE esse delendam