Select onChange aus anderem Forumbeitrag

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

  • Select onChange aus anderem Forumbeitrag

    Ich habe mir aus folgendem Beitrag das Select entnommen, um die Seite damit neuzuladen.

    BEITRAG

    Nur irgendwo hat sich ein Fehler in der Syntax eingeschlichen und ich verzweifle hier. 2 Kollegen haben auch schon drübergeschaut.

    Vielleicht kann mir jemand eine porduktive Hilfe geben und keine aroganten Kommentare posten...

    PHP-Code:
    echo '<div style="width:40px; float:left; margin-left:26px;">';

    //Hier hat sich der Fehler eingeschlichen
    echo ' <select name="sel_anz_pic"
    onChange="location.replace('
    ../src/gallery_sh.php/?gal=
    '.$_GET['gal'].'&site='.$_GET['site'].'&show='+this.value);">';

    echo 
    ' <option value="3">3</option>';
    echo 
    ' <option value="6">6</option>';
    echo 
    ' <option selected="selected" value="9">9</option>';
    echo 
    '</select></div>'
    Folgende Fehlermeldung ist entstanden:



    Parse error: syntax error, unexpected '.' in
    /usr/export/www/vhosts/funnetwork/hosting/bday06/src/gallery_sh.php
    on line 302

  • #2
    Du solltest eigentlich schon am Syntax-Highlighting des Forums sehen, dass da etwas nicht stimmt. Da dein echo die Zeichenkette mit singlequotes (') begrenzt, muss jedes weitere Vorkommen von singlequotes, das die Zeichenkette nicht schließen soll, mit einem backslash (\) maskiert werden.
    Nieder mit der Camel Case-Konvention

    Kommentar


    • #3
      ich habe es jetzt so geändert, wie ich es schonmal verwendet habe und es auch funktioniert hat.

      //richtig
      PHP-Code:
      header("Location: 
      ../src/gallery.php?gal="
      .$_GET['gal']."&pic=".$_GET['pic']."&com=yes"); 
      //falsch
      PHP-Code:

      echo ' <select name="sel_anz_pic" 
      onChange="location.replace("../src/gallery_sh.php/?gal=".$_GET['
      gal']."
      &site=".$_GET['
      site']."&show="+this.value);">'
      Das ist die momentane Fehlermeldung:
      Parse error: syntax error, unexpected T_STRING, expecting
      ',' or ';' in /usr/export/www/vhosts/funnetwork/hosting/bday06
      /src/gallery_sh.php on line 302

      Kommentar


      • #4
        Dann schätze ich, dass du mit meinem Posting nichts anfangen konntest, oder irre ich mich? Na ja, es ist doch eigentlich ganz simpel:
        Möchte man einen String ausgeben, muss man ihn entweder mit single- oder doublequotes begrenzen (ausgenommen heredoc).

        echo 'text';
        Singlequote Nummer eins leitet den String ein, singlequote Nummer 2 schließt ihn ab. Packst du in der Zeichenkette selbst jetzt noch ein singlequote rein, dann "denkt" der Parser, dass die Zeichenkette an dieser Stelle abgeschlossen wird - obwohl diese ja eigentlich noch nicht am Ende ist. Und siehe da: parse error. Deshalb muss maskiert werden.

        echo 'dies_und_jenes.location.repeat(\'dies_und_jenes\')_dies_und jenes';

        Das gehört zu den Grundlagen und muss man wissen.
        Zuletzt geändert von Griecherus; 18.12.2006, 13:15.
        Nieder mit der Camel Case-Konvention

        Kommentar


        • #5
          Original geschrieben von Griecherus
          Dann schätze ich, dass du mit meinem Posting nichts anfangen konntest, oder irre ich mich? Na ja, es ist doch eigentlich ganz simpel:
          Möchte man einen String ausgeben, muss man ihn entweder mit single- oder doublequotes begrenzen (außgenommen heredoc).

          echo 'text';
          Singlequote Nummer eins leitet den String ein, singlequote Nummer 2 schließt ihn ab. Packst du in der Zeichenkette selbst jetzt noch ein singlequote rein, dann "denkt" der Parser, dass die Zeichenkette an dieser Stelle abgeschlossen wird - obwohl diese ja eigentlich noch nicht am Ende ist. Und siehe da: parse error. Deshalb muss maskiert werden.

          echo 'dies_und_jenes.location.repeat(\'dies_und_jenes\')_dies_und jenes';

          Das gehört zu den Grundlagen und muss man wissen.
          Tja, ich hab einfahc drauf losprogrammiert und hatte das Problem bis jetzt nicht... sorry..

          mal schauen, ob es funktioniert...

          Danke erstmal

          Kommentar


          • #6
            Es hat sich nix geändert....
            durch das einfügen ht sich auch nichts im syntax highlighting geändert....

            Kommentar


            • #7
              Zeig mal.
              Nieder mit der Camel Case-Konvention

              Kommentar


              • #8
                Entweder so
                PHP-Code:
                echo ' <select name="sel_anz_pic" 
                onChange="location.replace(\'../src/gallery_sh.php/?gal=\'.$_GET['
                gal']
                .\'&site=\'.$_GET['
                site'].\'&show=\'+this.value);">'
                oder so, obwohl ich denke, dass dieses auf jedenfall falsch ist, oder?!
                PHP-Code:
                echo ' <select name="sel_anz_pic" 
                onChange="location.replace(\'../src/gallery_sh.php/?gal=\'.$_GET[\'gal\']
                .\'&site=\'.$_GET[\'site\'].\'&show=\'+this.value);">'

                Kommentar


                • #9
                  Poste bitte einmal ohne PHP-Tags, da die anscheinend die Backslashes fressen.
                  Nieder mit der Camel Case-Konvention

                  Kommentar


                  • #10
                    echo ' <select name="sel_anz_pic"
                    onChange="location.replace(\'../src/gallery_sh.php/?gal=\'.$_GET['gal'].\'&site=\'.$_GET
                    ['site'].\'&show=\'+this.value);">';

                    Er schluckt sie wieder, wie du siehst^^
                    ich hab mal ne txt angehangen...
                    Angehängte Dateien

                    Kommentar


                    • #11
                      PHP-Code:
                      echo '<select name="sel_anz_pic" 
                      onChange="location.replace(\'../src/gallery_sh.php/?gal='
                      .$_GET["gal"].'&site='.$_GET["site"].'&show=+this.value\');">'

                      Kommentar


                      • #12
                        sry, kann meinen post nicht editieren (nicht genügend rechte, olol ) ^^

                        bei obigem code einfach bei location.replace(' noch mit einem backslash escapen.
                        location.replace( \ '
                        (halt einfach ohne lücken)
                        Das selbe machst du noch bei +this.value \ ' )

                        Kommentar


                        • #13
                          Du solltest dich unbedingt nochmal hiermit beschäftigen. Du hast die $_GET Parameter nicht richtig von der Zeichenkette getrennt.
                          Angehängte Dateien
                          Nieder mit der Camel Case-Konvention

                          Kommentar


                          • #14
                            Original geschrieben von schlattm
                            PHP-Code:
                            echo '<select name="sel_anz_pic" 
                            onChange="location.replace(\'../src/gallery_sh.php/?gal='
                            .$_GET["gal"].'&site='.$_GET["site"].'&show=+this.value\');">'

                            Parse error: syntax error, unexpected '.' in
                            /usr/export/www/vhosts/funnetwork/hosting/bday06/src/gallery_sh.php
                            on line 306

                            Kommentar


                            • #15
                              PHP-Code:
                              echo "<select name=\"sel_anz_pic\" onChange=\"location.replace('../src/gallery_sh.php/?gal=".$_GET["gal"].'&site='.$_GET["site"]."&show=+this.value');\">" 
                              greets
                              (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

                              Kommentar

                              Lädt...
                              X