Ankündigung

Einklappen
Keine Ankündigung bisher.

einzelne <option></option> auf disabled setzen

Einklappen

Neue Werbung 2019

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

  • #16
    Nein, soll eben _nicht_ für alle gleich sein! Nur für die letzten 6 Einträge ganz unten.

    Kommentar


    • #17
      Dann bau dir eine Funktion, die dir für eine übergebene ID zurückliefert, ob sie disabled ist oder nicht. Aber wie gesagt, mit einer Schleife wäre das einfacher und logischer.
      [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

      Kommentar


      • #18
        Hier habe ich es in der Schleife, es ändert sich aber überhaupt nichts. Es ist doch egal ob ich es von Hand oder in einer Schleife zusammen bau?

        PHP-Code:

        // Das Projekt welches ich aus der Datenbank auslese hat den Stauts 0 
        $Status = 0;

        // Das Projekt welches ich aus der Datenbank auelse hat den Projekt-Staus, siehe unten
        $p_status = "904895f93ccb9f1f44479582c9d4bd4e";

        // Hier prüfe ich ob das Projekt folgenden Status hat
        if ($p_status != "a3e18039dbdaa14cc52bbaa3d4e4a4c7" OR
            $p_status != "5da361ecee7c0c71971dab119a9babce" OR
            $p_status != "54a556b805869244d18fe0dc0c19c4ce" OR
            $p_status != "3018babe7d2a1fbeb43c3bae0fcd532f" OR
            $p_status != "2afeb8b8f86e17862748b6402da01db6" OR
            $p_status != "6e623de7c366c92accd2b4a7ee49ad2a") {

            // Wenn ja, soll geshcuat werden ob das Projekt den Status 0 hat, wenn ja setzte den Wert disabled="disabled
            if ($Status == 0) {
              $disabled = 'disabled="disabled"';
            } else {
              $disabled = 'hallo';
            }

        }

        ?>
        <form action="" method="POST">
          <select name="p_status" id="p_status" style="width: 15em; background-color: #efefef;">    

            <?php 
            $projektstatus 
        projektstatus($mysqli);
            foreach(
        $projektstatus as $array){ ?>

            <option 
              value="<?php echo $array['ps_code'];?>"<?php echo ($p_status == $array['ps_code'] ? "selected" "");?> <?php echo $disabled?>>
              <?php echo $array['ps_titel'];?>
            </option>

            <?php ?>
          </select>
        </form>

        Kommentar


        • #19
          Es ist doch egal ob ich es von Hand oder in einer Schleife zusammen bau?
          Ist es natürlich nicht, weil du die Bedingung jetzt in die Schleife einbauen kannst. Musst du ja auch, wenn sich der Wert den du prüfen willst jedes Mal ändert. Ich meine, das kannst du natürlich auch von Hand machen, wenn du die Bedingung 20 Mal abschreiben und ändern willst... aber die ID muss da halt schon mit rein.
          [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

          Kommentar


          • #20
            Ich habe es

            PHP-Code:

            // Das Projekt welches ich aus der Datenbank auslese hat den Stauts 0
            $Status = 0;

            // Das Projekt welches ich aus der Datenbank auelse hat den Projekt-Staus, siehe unten
            $p_status = "904895f93ccb9f1f44479582c9d4bd4e";

            ?>
            <form action="" method="POST">
              <select name="p_status" id="p_status" style="width: 15em; background-color: #efefef;">    

                <?php
                $projektstatus 
            projektstatus($mysqli);

                foreach(
            $projektstatus as $array){


                  if (
            $array['ps_code'] == "a3e18039dbdaa14cc52bbaa3d4e4a4c7" OR
                      
            $array['ps_code'] == "5da361ecee7c0c71971dab119a9babce" OR
                      
            $array['ps_code'] == "54a556b805869244d18fe0dc0c19c4ce" OR
                      
            $array['ps_code'] == "3018babe7d2a1fbeb43c3bae0fcd532f" OR
                      
            $array['ps_code'] == "2afeb8b8f86e17862748b6402da01db6" OR
                      
            $array['ps_code'] == "6e623de7c366c92accd2b4a7ee49ad2a") {

                      
            // Wenn ja, soll geshcuat werden ob das Projekt den Status 0 hat, wenn ja setzte den Wert disabled="disabled
                      
            if ($Status == 0) {
                        
            $disabled 'disabled="disabled"';
                      } else {
                        
            $disabled '';
                      }

                  }
                
            ?>

                <option
                  value="<?php echo $array['ps_code'];?>"<?php echo ($p_status == $array['ps_code'] ? "selected" "");?> <?php echo $disabled?>>
                  <?php echo $array['ps_titel'];?>
                </option>

                <?php ?>
              </select>
            </form>

            Kommentar


            • #21
              Also eine von den beiden If-Abfragen kannst du dir sparen. $Status ist immerhin immer 0, wird ja im Laufe des Scripts bin inkl. der Schleife nicht mehr verändert.


              Den Standard-Wert musst du schon vor den If-Abfragen definieren, sonst wird die Variable nicht definiert wenn der Datensatz nicht zu den 6 speziellen gehört.

              PHP-Code:
                  foreach($projektstatus as $array){


                    
              $disabled '';
                    if (
              $array['ps_code'] == "a3e18039dbdaa14cc52bbaa3d4e4a4c7" OR
                        
              $array['ps_code'] == "5da361ecee7c0c71971dab119a9babce" OR
                        
              $array['ps_code'] == "54a556b805869244d18fe0dc0c19c4ce" OR
                        
              $array['ps_code'] == "3018babe7d2a1fbeb43c3bae0fcd532f" OR
                        
              $array['ps_code'] == "2afeb8b8f86e17862748b6402da01db6" OR
                        
              $array['ps_code'] == "6e623de7c366c92accd2b4a7ee49ad2a")
                    {
                        
              $disabled 'disabled="disabled"';
                    } 
              Jetzt könnte man auch noch in_array anstatt des OR-Konstruktes nutzen, das ist dann aber nur noch Kosmetik.
              [COLOR=#A9A9A9]Relax, you're doing fine.[/COLOR]
              [URL="http://php.net/"]RTFM[/URL] | [URL="http://php-de.github.io/"]php.de Wissenssammlung[/URL] | [URL="http://use-the-index-luke.com/de"]Datenbankindizes[/URL] | [URL="https://www.php.de/forum/webentwicklung/datenbanken/111631-bild-aus-datenbank-auslesen?p=1209079#post1209079"]Dateien in der DB?[/URL]

              Kommentar


              • #22
                Also du meinst so?

                PHP-Code:

                foreach($projektstatus as $array){ 

                                        
                $disabled '';

                                        
                $array_status = array(
                                            
                "3018babe7d2a1fbeb43c3bae0fcd532f"
                                            
                "2afeb8b8f86e17862748b6402da01db6"
                                            
                "6e623de7c366c92accd2b4a7ee49ad2a"
                                            
                "602c5602d0a86003a925951b46a012b4"
                                            
                "5555d1be56a4b410da755026783b4d9e");

                                        if ( 
                in_array($array['ps_code'], $array_status) ) {
                                            
                $disabled 'disabled="disabled"';
                                          } 
                Hat das Vorteile gegenüber dem OR oder ist dieses wirklich nur Kosmetik?

                Kommentar


                • #23

                  PHP-Code:
                  <?php
                  // Das Projekt welches ich aus der Datenbank auslese hat den Stauts 0
                  $Status 0;

                  // Das Projekt welches ich aus der Datenbank auelse hat den Projekt-Staus, siehe unten
                  $p_status "904895f93ccb9f1f44479582c9d4bd4e";

                  $disabled_status = array(
                                              
                  "3018babe7d2a1fbeb43c3bae0fcd532f",
                                              
                  "2afeb8b8f86e17862748b6402da01db6",
                                              
                  "6e623de7c366c92accd2b4a7ee49ad2a",
                                              
                  "602c5602d0a86003a925951b46a012b4",
                                              
                  "5555d1be56a4b410da755026783b4d9e");

                  $projektstatus projektstatus($mysqli);
                  ?>
                  <form action="" method="POST">
                    <select name="p_status" id="p_status" style="width: 15em; background-color: #efefef;">  
                      <?php
                      
                  foreach($projektstatus as $array){
                          
                  $disabled "";
                          
                  $selected "";
                          if (
                  in_array($array['ps_code'], $disabled_status)) {
                              
                  $disabled 'disabled="disabled"';
                          }
                          if (
                  $p_status === $array['ps_code']) {
                              
                  $selected "selected";
                          }
                      
                  ?>
                      <option
                        value="<?= $array['ps_code'?>"
                        <?= $selected ?>
                        <?= $disabled ?>
                      >
                        <?= $array['ps_titel'?>
                      </option>
                      <?php ?>
                    </select>
                  </form>
                  So, das wäre dann ein Schritt näher ans EVA-Prinzip indem du zuerst alle relevanten Daten zusammensuchst und dann nur noch abarbeitest und ausgibst.
                  Ich finde auch, dass sich die For-Schleife und die IF-Abfrage besser lesen lassen.
                  Sobald du das Array mit den Status-Codes noch irgendwo anders braucht spart es dann eben auch Arbeit, weil du die Daten nicht mehrfach bearbeiten musst wenn sich da mal was ändert.
                  [COLOR=#A9A9A9]Relax, you're doing fine.[/COLOR]
                  [URL="http://php.net/"]RTFM[/URL] | [URL="http://php-de.github.io/"]php.de Wissenssammlung[/URL] | [URL="http://use-the-index-luke.com/de"]Datenbankindizes[/URL] | [URL="https://www.php.de/forum/webentwicklung/datenbanken/111631-bild-aus-datenbank-auslesen?p=1209079#post1209079"]Dateien in der DB?[/URL]

                  Kommentar


                  • #24
                    Und bitte htmlspecialchars() nicht vergessen!


                    BTW.. ad Lesbarkeit:

                    PHP-Code:
                    $disabled_status = array(
                                                
                    "3018babe7d2a1fbeb43c3bae0fcd532f",
                                                
                    "2afeb8b8f86e17862748b6402da01db6",
                                                
                    "6e623de7c366c92accd2b4a7ee49ad2a",
                                                
                    "602c5602d0a86003a925951b46a012b4",
                                                
                    "5555d1be56a4b410da755026783b4d9e"); 

                    PHP-Code:
                    $disabled_status = [
                        
                    "3018babe7d2a1fbeb43c3bae0fcd532f",
                        
                    "2afeb8b8f86e17862748b6402da01db6",
                        
                    "6e623de7c366c92accd2b4a7ee49ad2a",
                        
                    "602c5602d0a86003a925951b46a012b4",
                        
                    "5555d1be56a4b410da755026783b4d9e"
                    ]; 
                    The string "()()" is not palindrom but the String "())(" is.

                    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                    PHP.de Wissenssammlung | Kein Support per PN

                    Kommentar

                    Lädt...
                    X