onChange in php Selectbox einbauen..

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

  • onChange in php Selectbox einbauen..

    Hallo,
    ich kann nicht sagen, dass ich javaScript besonders mag, aber ich möchte es hier in einer php Funktion verwenden.

    Meine Funktion holt aus einem mySQL Datenbanktabellenfeld mit demTyp 'datetime' ein Datum, formatiert den String so, dass nur das Jahr generiert wird und stellt die so gefundenen Werte in einer generierten Selectbox dar. Soweit so gut. Das klappt auch hervorragend.

    Mein Problem ist hier allerdings, dass bei Auswahl der Werte in der select-Box nichts passiert. Meine Idee also : "Do it with javaScript".

    Auch noch gut- aber:
    Ich bekomme das Zusammensetzen der Parameter - also den javascript onChange innerhalb des PHP Codes nicht hin. Ein Jammer.
    Kann mir da jemand auf die Sprünge helfen?

    Hier der Code:
    Zuerst die Funktion selbst:


    PHP-Code:
    function database_select($tbl_value$select_name$label) {
        global 
    $DB_WE;
        
    $menu "<label for=\"".$select_name."\">".$label."</label>\n";
        
               
    // hier beginnt problematische Zeile
        
    $menu .= "<select name=\"".$select_name."\" onChange=\"document.location.href='".$_SERVER["PHP_SELF"]."?"\">\n";
               
    // hier endet problematische Zeile
               
        
    $DB_WE->query("SELECT DATE_FORMAT(DateOrder,'%Y') AS DateOrder FROM ".SHOP_TABLE " GROUP BY DateOrder");
        while (
    $DB_WE->next_record()) {
            
    $menu .= "  <option value=\""$DB_WE->f("DateOrder")."\"";
            
    $menu .= (isset($_REQUEST[$select_name]) && $DB_WE->f("DateOrder") == $_REQUEST[$select_name]) ? "

    selected=\"selected\"" 
    "";
            
    $menu .= ">" $DB_WE->f("DateOrder") . "\n";
        }
        
        
    $menu .= "</select>\n";
            
        return 
    $menu;
      
    }

    // Aufgerufen wird die Funktion übrigens einfach mit:

    $selectBox database_select("DateOrder""ViewYear""Jahr auswählen:");
    ...
    ...
    ...
    ... 

    Der problematische Teil ist zwischen Zeile 5 -7.
    Es muss hier bei onChange irgendsoetwas rein, weil
    + this.options[this.selectedIndex].value oder
    + this.options[this.selectedIndex].name den ausgewählten Jahr beinhaltet... (glaube ich zumindest)
    PHP-Code:
     $menu .= "<select name=\"".$select_name."\"  onChange="document.location.href=\"' . $_SERVER['PHP_SELF']

     .'?\" + this.name + "
    =" + this.options[this.selectedIndex].value

    //oder

     
    $menu .= "<select name=\"".$select_name."\"  onChange="document.location.href=\"' . $_SERVER['PHP_SELF'] . 

    '?\" + this.name + "
    =" + this.options[this.selectedIndex].name 
    nur bekomme ich die Verkettung nicht hin. Kann mir jemand damit helfen?


    Danke erstmal
    Zuletzt geändert von phpscripter; 17.06.2005, 13:36.

  • #2
    bitte code umbrechen
    http://www.php-resource.de/forum/sho...threadid=50454

    Kommentar


    • #3
      umgebrochen...

      Original geschrieben von penizillin
      bitte code umbrechen
      http://www.php-resource.de/forum/sho...threadid=50454
      büdde sehr

      Kommentar


      • #4
        verwende ', um in php strings zu begrenzen, dann kannst du innerhalb derer " verwenden, ohne zu escapen.
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #5
          Original geschrieben von derHund
          verwende ', um in php strings zu begrenzen, dann kannst du innerhalb derer " verwenden, ohne zu escapen.
          Danke für deine Antwort:

          Ich habe das mal so gemacht- es gibt nun keine Fehler mehr, aber funktionieren tuts auch noch nicht- die javaScript Variablen werden noch nicht richtig extrahiert..:

          PHP-Code:
           $menu .=
           
          "<select name=\"".$select_name."\" onChange=\"document.location.href='".$_SERVER["PHP_SELF"]."?\'
          + this.name + \'=\' + this.options[this.selectedIndex].value' \">\n"

          Kommentar


          • #6
            anstatt
            PHP-Code:
            this.options[this.selectedIndex].value 
            einfach mal mit
            PHP-Code:
            this.value 
            probieren

            Kommentar


            • #7
              Original geschrieben von richtsteiger
              anstatt
              PHP-Code:
              this.options[this.selectedIndex].value 
              einfach mal mit
              PHP-Code:
              this.value 
              probieren
              Danke für die Antwort.
              Puh- javaScript in PHP ist ne echte Qual. Das scheint auch nichts zu bringen- > die Variablen werden nicht richtig extrahiert. Es liegt wohl an dem Quoting...?

              Ich hab das jezt so:
              PHP-Code:
               $menu .=
              "<select name=\"".$select_name."\" onChange=\"document.location.href=' "$_SERVER['PHP_SELF'] ."
               ?\' + this.name + \'=\' + this.value\' \">\n"

              Der Quelltext- also die Ausgabe sieht so aus:

              PHP-Code:
              <label for="ViewYear">Jahr auswählen:</label>
              <
              select name="ViewYear"
                
              onChange="document.location.href=' /www/web/include/module/shop/shopTop.php ?\'
                  + this.name + \'=\' + this.value\' "
              >
                <
              option value="2003">2003
                
              <option value="2004">2004
                
              <option value="2005" selected="selected">2005
              </select
              Es wird alles richtig gemacht, bis auf das Extrahieren der Variablen....
              Jemand eine Idee?

              Kommentar


              • #8
                Das hat funktioniert...

                Danke für die Hilfe-> damit tut es

                PHP-Code:
                $menu .=
                "<select name=\"".$select_name."\" onChange=\"document.location.href='".$_SERVER['PHP_SELF'].
                "?ViewYear='+ this.options[this.selectedIndex].value\">\n"
                Das Quoting wars....

                Gruss

                Kommentar


                • #9
                  PHP-Code:
                  >?php
                  $menu 
                  .=
                  "<select name=\"".$select_name."\" onChange=\"document.location.href='".$_SERVER['PHP_SELF'].
                  "?' + this.name + '='+ this.value\">\n";
                  ?> 
                  sollte auch funktionieren, oder?


                  oder das:
                  PHP-Code:
                  <?php
                  $menu 
                  .= ?>
                  <select name="<?=$select_name?>"  onChange="document.location.href='<?=$_SERVER['PHP_SELF']?>
                  ?' + this.name + '='+ this.value"> <?php ?>
                  oder ist das jetzt zu abgefahren?
                  Zuletzt geändert von prego; 17.06.2005, 15:14.

                  Kommentar


                  • #10
                    danke für die Hilfe

                    ... es tut jetzt.

                    Kommentar

                    Lädt...
                    X