Combobox Disabled schalten, wenn ID = 7

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

  • Combobox Disabled schalten, wenn ID = 7

    Hallo Leute, ich hab ein kleines problem:

    Das ist mal meine ComboBox:
    PHP-Code:
    function comboGrund($Grund_ID)
    {
        global 
    $db;

        
    $ausGID 0;
        
    $ausGName 'leer';

        
    $str_sql 'SELECT * FROM tbl_grund';
        
    $result $db->select($str_sql,1);
        
    $option_str_grund '';
        foreach (
    $result as $row)
        {
            
    $selected '';
            if (
    $Grund_ID == $row[0])
            {
                
    $selected 'selected';
                
    $ausGID $row[0];
                
    $ausGName $row[1];
            }
            
    $option_str_grund .= '<option value="'.$row[0].'" '.$selected.'>'.$row[1].'</option>';
        }
        return 
    $option_str_grund;

    In einer anderen Funktion Frage ich bzw. kann ich daraus auswählen:
    PHP-Code:
    echo '<td><select class="cbgrund" name="grund_id'.$date.'">'.comboGrund($row['Grund_ID']).'</select></td>'
    Jetzt möchte ich aber, wenn der "Grund_ID" = 7, dann soll dieses echo "DISABLED" sein.

    Zur Zeit steht die Bezeichnung des Grund_ID = 7 in der Combobox. (Da steht "Feiertag") Das funktioniert ja.
    Aber es ist weiters möglich, den Grund manuell zu ändern. Das möchte ich verhindern.

    Bitte um hilfe
    LG, m-werk

  • #2
    Wenn ich dich richtig verstanden habe, willst du ein einzelnes option-Element auf disabled setzen. Richtig? Dann muss ich dir leider mitteilen, dass da der IE 6/7 nicht mitspielt.

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      aha, danke für die Info.

      Und wie seht es im IE 8 und im FF 3.5 aus? Da würde es gehen? Dann bräuchte ich bitte deine hilfe.
      LG, m-werk

      Kommentar


      • #4
        Wo ist denn das Problem?
        PHP-Code:
        if (== $Grund_ID)
        {
          
        $selected 'disabled';

        else if (
        $Grund_ID == $row[0])
        {
         ...

        Ist zwar ein wenig blöd, die Variable $selected auf disabled zu setzen, sollte aber funktionieren.

        Peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Danke, das würde schon mal funktionieren.
          Ich kann keinen anderen Grund auswählen, aber sehrwohl die anderen Gründe sehen, wenn ich auf den Pfeil klicke.

          Was mir jetzt wieder abhanden gekommen ist, ist dass ich in der Combobox den Wert "Feiertag" nicht mehr sehe.

          PHP-Code:
          if (in_array($datenormal,$feiertag))
                  {
                      
          comboGrund($row['Grund_ID'] = 7);
                  } 
          Damit zeige ich in der Combobox "Feiertag" an.

          Jetzt wird nur ein " - " angezeigt.
          LG, m-werk

          Kommentar


          • #6
            PHP-Code:
            comboGrund(7); 
            So?

            Peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              ?? versteh ich jetzt nicht!

              Es stand zuvor immer der Wert "Feiertag" in der ComboBox drinn. Seit dem ich im Code $selectet = 'disabled' habe, wird der Grund, welche die ID 7 hat, nicht mehr als Wert angezeigt. Da steht nur der 1. Eintrag drinn und das ist ein -.

              Ich möchte wieder den Grund 7, also "Feiertag" in der Combobox stehen haben.
              LG, m-werk

              Kommentar


              • #8
                Zitat von m-werk Beitrag anzeigen
                ?? versteh ich jetzt nicht!

                Es stand zuvor immer der Wert "Feiertag" in der ComboBox drinn. Seit dem ich im Code $selectet = 'disabled' habe, wird der Grund, welche die ID 7 hat, nicht mehr als Wert angezeigt. Da steht nur der 1. Eintrag drinn und das ist ein -.

                Ich möchte wieder den Grund 7, also "Feiertag" in der Combobox stehen haben.
                Dann hast du irgendwo einen Fehler eingebaut. Wie sieht denn der erzeugte(!) HTML-Code für das select-Element aus?

                Peter
                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                Meine Seite

                Kommentar


                • #9
                  HTML-Code:
                  <select class="cbgrund" name="grund_id2010-01-06">
                  <option value="1" disabled>-</option>
                  <option value="2" disabled>Urlaub</option>
                  <option value="3" disabled>Zeitausgleich</option>
                  <option value="4" disabled>Krankenstand</option>
                  <option value="5" disabled>Berufschule</option>
                  <option value="6" disabled>Sonderurlaub</option>
                  <option value="7" disabled>Feiertag</option>
                  <option value="8" disabled>Ü-Std. auszahlung</option>
                  </select>
                  Es wird das value 1 angezeigt und nicht das 7.
                  LG, m-werk

                  Kommentar


                  • #10
                    Ups, da habe ich was falsch verstanden.
                    PHP-Code:
                    if ($Grund_ID == $row[0])
                    {
                      if (
                    == $Grund_ID)
                      {
                        
                    $selected 'disabled';
                      }  
                      else
                      {
                        
                    $selected 'selected';
                      }
                      
                    $ausGID $row[0];
                      
                    $ausGName $row[1];

                    Meine vorherige Bedingung ist ja immer wahr, daher steht überall ein disabled.

                    Peter
                    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                    Meine Seite

                    Kommentar


                    • #11
                      Ups, das ist jetzt ganz falsch.

                      Jetzt wird mir in jeder ComboBox der letzte Eintrag angezeigt mit der ID 8 und weiters in der Zeile, wo die ID 7 greifen sollte, wird weiterhin nichts angezeigt.

                      Da muss, glaube ich, wo anders angesetzt werden.

                      PHP-Code:
                      if (== $Grund_ID)
                              {
                                  
                      $selected 'selected disabled';
                              } 
                      Da wird jetzt zwar etwas angezeigt, aber wieder die ID 8 und nicht die 7. Ich müsste noch die ID 7 dazubringen
                      LG, m-werk

                      Kommentar


                      • #12
                        Hast du dir die $Grund_ID in der Funktion mal ausgeben lassen? Ansonsten hilft hier nur ein vernünftiges Debugging

                        Peter
                        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                        Meine Seite

                        Kommentar


                        • #13
                          Sorry, hab deinen vorigen Beitrag nur zu 90 % gelesen.

                          PHP-Code:
                          function comboGrund($Grund_ID)
                          {
                              global 
                          $db;

                              
                          $ausGID 0;
                              
                          $ausGName 'leer';

                              
                          $str_sql 'SELECT * FROM tbl_grund';
                              
                          $result $db->select($str_sql,1);
                              
                          $option_str_grund '';
                              foreach (
                          $result as $row)
                              {
                                  
                          $selected '';
                                  if (
                          $Grund_ID == $row[0])
                                  {
                                      if (
                          == $Grund_ID)
                                      {
                                          
                          $selected 'disabled';
                                      }
                                      else
                                      {
                                          
                          $selected 'selected';
                                      }
                                      
                          $ausGID $row[0];
                                      
                          $ausGName $row[1];
                                  }

                                  
                          $option_str_grund .= '<option value="'.$row[0].'" '.$selected.'>'.$row[1].'</option>';
                                  
                              }
                              return 
                          $option_str_grund;

                          Jetzt habe ich folgendes Problem:

                          Es wird weiterhin nichts angezeigt und bearbeiten kann ich es auch wieder bis eben auf "Feiertag" das kann ich nicht auswählen.


                          Es gehört aber "Feiertag" angezeigt und bearbeiten darf ich die gesamte Combobox nicht.
                          LG, m-werk

                          Kommentar


                          • #14
                            Zitat von m-werk Beitrag anzeigen
                            Es gehört aber "Feiertag" angezeigt
                            Dann betreibe mal ein sauberes Debugging. Ohne Daten kann ich nur raten.
                            Zitat von m-werk Beitrag anzeigen
                            und bearbeiten darf ich die gesamte Combobox nicht.
                            Dann musst du das disabled auf das select-Element legen.

                            Peter
                            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                            Meine Seite

                            Kommentar


                            • #15
                              Wie erstelle ich ein sauberes Debugging?
                              LG, m-werk

                              Kommentar

                              Lädt...
                              X