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

  • einzelne <option></option> auf disabled setzen

    Hallo,

    ist es möglich innerhalb einer foreach-Schleife bestimmte <option></option> auf disabled setzen solange der Wert bei $freigabe nicht auf 1 steht?

    PHP-Code:
    <form action="" method="POST">

        <select name="projekt_status" id="projekt_status" onchange="if (this.value) { this.form.submit(); }" <?php if ($erlaubeBestellung == 0): ?>disabled="true" <?php endif ?> >

            <option value="">-- Bitte wählen --</option>

            <?php $statusAusgabe status($mysqli);
            foreach(
    $statusAusgabe as $array){ ?>
            <option value="<?php echo $array['code'];?>"<?php echo ($projekt_status == $array['code'] ? "selected" "");?>><?php echo $array['titel'];?></option>
            <?php ?>

        </select>

    </form>
    Der PHP dazu schaut so aus

    PHP-Code:
        function status($mysqli) {

            
    $stmt $mysqli->prepare("SELECT id, code, titel, sort, farbe, class FROM status ORDER by sort ASC ");
            
    $stmt->execute();
            
    $stmt->bind_result($id$ode$titel$sort$farbe$class);
            
    $stmt->store_result();

            if(
    $stmt->num_rows() >  0) {     

                while (
    $stmt->fetch()){

                    
    $status[] = array( 

                        
    'id'        => $id
                        
    'code'      => $code,
                        
    'titel'     => $titel,
                        
    'sort'      => $sort,
                        
    'farbe'     => $farbe,
                        
    'class'     => $class
                    
    );
                }

                return 
    $status;

                }
        } 
    Das ganze sieht dann so aus

    Bildschirmfoto 2019-09-13 um 16.23.28.png

    die letzten 6 dürfen nicht angeklickt werden, solange bestellt/bestätigt nicht geklickt wurde.


  • #2
    Ja. https://developer.mozilla.org/de/doc...Element/option
    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.

    Kommentar


    • #3
      Hallo, die Option Gruppen kommen nicht in Frage, da ich die Überschriften nicht benötige und auch nicht gewünscht sind. Außerdem sind die Einträge doch sehr eingerückt. Ich habe gerade gesehen dass ich einzelnen <option> ein disabled mitgeben kann und diese dann ausgegraut sind.

      Die Frage ist jetzt nur, wie kann ich dieses innerhalb einer foreach umsetzten?

      Kommentar


      • #4
        So wie du es auch schon mit selected machst. Pack noch eine andere Abfrage dazu die entsprechend ein anderes Attribut setzt.

        Mit der Kurzform vom echo wirds auch ein bisschen einfacher zu lesen.
        PHP-Code:
        <option value="<?= $array['code']?><?= $projekt_status == $array['code'] ? "selected" "" ?>><?= ?></option>
        Oder, wenn man da mal wirklich viel Zeugs ins HTML reinschmuggeln muss, so (https://www.php.net/manual/de/function.printf.php)
        PHP-Code:
        $option "<option value='%s' %s >%s</option>";
        printf(
            
        $option,
            
        $array['code'],
            
        $projekt_status === $array['code'] ? "selected" "",
            
        $array['titel']
        ); 
        Relax, you're doing fine.
        RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

        Kommentar


        • #5
          Irgendwie stehe ich gerade total auf dem Schlauch. Ich habe ja mehreren Status wie man auf dem ersten Bild sieht. Dieses sieht im Ausgabe-HTMl Code so aus

          PHP-Code:

          <select name="projekt_status" id="projekt_status">

            <
          option value="07bc9a80a0da7031218f1a9514a327c3">offen nicht angefragt</option>
            <
          option value="8f9bdc964d3b7496587b8161e2c43d1f">angefragt</option>
            <
          option value="904895f93ccb9f1f44479582c9d4bd4e" selected="">beantwortet KVA erstellt</option>
            <
          option value="179d504085be6c8bb92173f54cdd39e1">Bestätigt Besteller</option>
            <
          option value="a3e18039dbdaa14cc52bbaa3d4e4a4c7">Bestätigt PL</option>
            <
          option value="5da361ecee7c0c71971dab119a9babce">Bestätigt KsT</option>
            <
          option value="54a556b805869244d18fe0dc0c19c4ce">bestellt bestätigt</option>
            <
          option value="3018babe7d2a1fbeb43c3bae0fcd532f">in Kommissionierung</option>
            <
          option value="2afeb8b8f86e17862748b6402da01db6">abgeholt unterwegs</option>
            <
          option value="6e623de7c366c92accd2b4a7ee49ad2a">zurückgeliefert</option>
            <
          option value="602c5602d0a86003a925951b46a012b4">geprüft zurückgeführt</option>
            <
          option value="5555d1be56a4b410da755026783b4d9e">abgeschlossen</option>
            <
          option value="99ec7d6e86ea7540c6479c198aa1bf70">storniert</option>

          </
          select
          Und nur die letzten 6, also diese

          PHP-Code:
            <option value="3018babe7d2a1fbeb43c3bae0fcd532f">in Kommissionierung</option>
            <
          option value="2afeb8b8f86e17862748b6402da01db6">abgeholt unterwegs</option>
            <
          option value="6e623de7c366c92accd2b4a7ee49ad2a">zurückgeliefert</option>
            <
          option value="602c5602d0a86003a925951b46a012b4">geprüft zurückgeführt</option>
            <
          option value="5555d1be56a4b410da755026783b4d9e">abgeschlossen</option>
            <
          option value="99ec7d6e86ea7540c6479c198aa1bf70">storniert</option
          dürfen nur ausgewählt werden, wenn in $ProjektStatus eine 1 steht, ansonsten müssen diese den Wert disabled haben. Und genau an diesem Punkt stehe ich gerade auf dem Schlauch.

          Kommentar


          • #6
            Verstehe das Problem nicht, am Ende steht doch da einfach nur

            Code:
            <option value="54a556b805869244d18fe0dc0c19c4ce" disabled="disabled">bestellt / bestätigt</option>
            Und das kannst du durch eine Variable ersetzen

            Code:
            '<option value="54a556b805869244d18fe0dc0c19c4ce" '.$disabled.'>bestellt / bestätigt</option>'
            Und die kannst du per PHP setzen

            PHP-Code:
            $disabled 'disabled="disabled"'
            Und da kannst du eine Bedingung draus machen

            PHP-Code:
            if($reallydisabledthisoption){
                
            $disabled 'disabled="disabled"';
            }
            else {
                
            $disabled '';

            Oder kürzer

            PHP-Code:
            $disabled $reallydisabledthisoption 'disabled="disabled"' ''
            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.

            Kommentar


            • #7
              Ich weiß es nicht ob ich mich einfach nur falsch ausdrücke. Ich weiß aber auch nicht wie ich es anderes schreiben soll.

              PHP-Code:

              <?php 
              $Status 
              0;
              $projekt_status "904895f93ccb9f1f44479582c9d4bd4e";
              ?>

              <form action="" method="POST">

                <select name="projekt_status" id="projekt_status">

                  <option value="07bc9a80a0da7031218f1a9514a327c3" <?= $projekt_status == "07bc9a80a0da7031218f1a9514a327c3" "selected" "" ?>>offen / nicht angefragt</option>
                  <option value="8f9bdc964d3b7496587b8161e2c43d1f" <?= $projekt_status == "8f9bdc964d3b7496587b8161e2c43d1f" "selected" "" ?>>angefragt</option>
                  <option value="904895f93ccb9f1f44479582c9d4bd4e" <?= $projekt_status == "904895f93ccb9f1f44479582c9d4bd4e" "selected" "" ?>>beantwortet / KVA erstellt</option>
                  <option value="179d504085be6c8bb92173f54cdd39e1" <?= $projekt_status == "179d504085be6c8bb92173f54cdd39e1" "selected" "" ?>>Bestätigt - Besteller</option>
                  <option value="a3e18039dbdaa14cc52bbaa3d4e4a4c7" <?= $projekt_status == "a3e18039dbdaa14cc52bbaa3d4e4a4c7" "selected" "" ?>>Bestätigt - PL</option>
                  <option value="5da361ecee7c0c71971dab119a9babce" <?= $projekt_status == "5da361ecee7c0c71971dab119a9babce" "selected" "" ?>>Bestätigt - KsT</option>
                  <option value="54a556b805869244d18fe0dc0c19c4ce" <?= $projekt_status == "54a556b805869244d18fe0dc0c19c4ce" "selected" "" ?>>bestellt / bestätigt</option>
                  <option value="3018babe7d2a1fbeb43c3bae0fcd532f" <?= $projekt_status == "3018babe7d2a1fbeb43c3bae0fcd532f" "selected" "" ?>>in Kommissionierung</option>
                  <option value="2afeb8b8f86e17862748b6402da01db6" <?= $projekt_status == "2afeb8b8f86e17862748b6402da01db6" "selected" "" ?>>abgeholt / unterwegs</option>
                  <option value="6e623de7c366c92accd2b4a7ee49ad2a" <?= $projekt_status == "6e623de7c366c92accd2b4a7ee49ad2a" "selected" "" ?>>zurückgeliefert</option>
                  <option value="602c5602d0a86003a925951b46a012b4" <?= $projekt_status == "602c5602d0a86003a925951b46a012b4" "selected" "" ?>>geprüft / zurückgeführt</option>
                  <option value="5555d1be56a4b410da755026783b4d9e" <?= $projekt_status == "5555d1be56a4b410da755026783b4d9e" "selected" "" ?>>abgeschlossen</option>
                  <option value="99ec7d6e86ea7540c6479c198aa1bf70" <?= $projekt_status == "99ec7d6e86ea7540c6479c198aa1bf70" "selected" "" ?>>storniert</option>

                </select> 

              </form>
              Wenn ich dieses ausführe erhalte ich beantwortet / KVA erstellt als ausgewählte Option was ja auch stimmt. Das Projekt steht derzeit bei 0, wie man bei $Status sieht. Die letzten 6 Optionen dürften jetzt _nicht_ anklickbar sein. Diese dürfen erst aktiviert werden wenn der Status 1 ist. Aber eben nur bei den letzten 6.

              Kommentar


              • #8
                Wozu überhaupt dem User anzeigen, wenn ers nicht auswählen kann? Welchen Mehrwert bringt ihm das?

                Kommentar


                • #9
                  Du hast das mit dem disabled doch gar nicht probiert.
                  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.

                  Kommentar


                  • #10
                    Doch, ich habe es so versucht

                    PHP-Code:
                    <?php
                    $Status 
                    0;
                    $projekt_status "904895f93ccb9f1f44479582c9d4bd4e";

                    if (
                    $projekt_status == "a3e18039dbdaa14cc52bbaa3d4e4a4c7" OR
                        
                    $projekt_status == "5da361ecee7c0c71971dab119a9babce" OR
                        
                    $projekt_status == "54a556b805869244d18fe0dc0c19c4ce" OR
                        
                    $projekt_status == "3018babe7d2a1fbeb43c3bae0fcd532f" OR
                        
                    $projekt_status == "2afeb8b8f86e17862748b6402da01db6" OR
                        
                    $projekt_status == "6e623de7c366c92accd2b4a7ee49ad2a") {

                        if (
                    $Status == 1) {
                          
                    $disabled '';
                        } else {
                          
                    $disabled 'disabled="disabled"';
                        }

                    }

                    ?>

                    <form action="" method="POST">

                      <select name="projekt_status" id="projekt_status">

                        <option value="07bc9a80a0da7031218f1a9514a327c3" <?= $projekt_status == "07bc9a80a0da7031218f1a9514a327c3" "selected" "" ?> <?= $projekt_status == "07bc9a80a0da7031218f1a9514a327c3" $disabled "" ?>>offen / nicht angefragt</option>

                        <option value="8f9bdc964d3b7496587b8161e2c43d1f" <?= $projekt_status == "8f9bdc964d3b7496587b8161e2c43d1f" "selected" "" ?> <?= $projekt_status == "8f9bdc964d3b7496587b8161e2c43d1f" $disabled "" ?>>angefragt</option>

                        <option value="904895f93ccb9f1f44479582c9d4bd4e" <?= $projekt_status == "904895f93ccb9f1f44479582c9d4bd4e" "selected" "" ?> <?= $projekt_status == "904895f93ccb9f1f44479582c9d4bd4e" $disabled "" ?>>beantwortet / KVA erstellt</option>

                        <option value="179d504085be6c8bb92173f54cdd39e1" <?= $projekt_status == "179d504085be6c8bb92173f54cdd39e1" "selected" "" ?> <?= $projekt_status == "179d504085be6c8bb92173f54cdd39e1" $disabled "" ?>>Bestätigt - Besteller</option>

                        <option value="a3e18039dbdaa14cc52bbaa3d4e4a4c7" <?= $projekt_status == "a3e18039dbdaa14cc52bbaa3d4e4a4c7" "selected" "" ?> <?= $projekt_status == "a3e18039dbdaa14cc52bbaa3d4e4a4c7" $disabled "" ?>>Bestätigt - PL</option>

                        <option value="5da361ecee7c0c71971dab119a9babce" <?= $projekt_status == "5da361ecee7c0c71971dab119a9babce" "selected" "" ?> <?= $projekt_status == "5da361ecee7c0c71971dab119a9babce" $disabled "" ?>>Bestätigt - KsT</option>

                        <option value="54a556b805869244d18fe0dc0c19c4ce" <?= $projekt_status == "54a556b805869244d18fe0dc0c19c4ce" "selected" "" ?> <?= $projekt_status == "54a556b805869244d18fe0dc0c19c4ce" $disabled "" ?>>bestellt / bestätigt</option>

                        <option value="3018babe7d2a1fbeb43c3bae0fcd532f" <?= $projekt_status == "3018babe7d2a1fbeb43c3bae0fcd532f" "selected" "" ?> <?= $projekt_status == "3018babe7d2a1fbeb43c3bae0fcd532f" $disabled "" ?>>in Kommissionierung</option>

                        <option value="2afeb8b8f86e17862748b6402da01db6" <?= $projekt_status == "2afeb8b8f86e17862748b6402da01db6" "selected" "" ?> <?= $projekt_status == "2afeb8b8f86e17862748b6402da01db6" $disabled "" ?>>abgeholt / unterwegs</option>

                        <option value="6e623de7c366c92accd2b4a7ee49ad2a" <?= $projekt_status == "6e623de7c366c92accd2b4a7ee49ad2a" "selected" "" ?> <?= $projekt_status == "6e623de7c366c92accd2b4a7ee49ad2a" $disabled "" ?>>zurückgeliefert</option>

                        <option value="602c5602d0a86003a925951b46a012b4" <?= $projekt_status == "602c5602d0a86003a925951b46a012b4" "selected" "" ?> <?= $projekt_status == "602c5602d0a86003a925951b46a012b4" $disabled "" ?>>geprüft / zurückgeführt</option>

                        <option value="5555d1be56a4b410da755026783b4d9e" <?= $projekt_status == "5555d1be56a4b410da755026783b4d9e" "selected" "" ?> <?= $projekt_status == "5555d1be56a4b410da755026783b4d9e" $disabled "" ?>>abgeschlossen</option>

                        <option value="99ec7d6e86ea7540c6479c198aa1bf70" <?= $projekt_status == "99ec7d6e86ea7540c6479c198aa1bf70" "selected" "" ?> <?= $projekt_status == "99ec7d6e86ea7540c6479c198aa1bf70" $disabled "" ?>>storniert</option>

                      </select>

                    </form>
                    Zitat von hellbringer Beitrag anzeigen
                    Wozu überhaupt dem User anzeigen, wenn ers nicht auswählen kann? Welchen Mehrwert bringt ihm das?
                    Weil man sehen sollte was als nächstes an der Reihe ist.

                    Kommentar


                    • #11
                      Ja OK, und was ist dabei rausgekommen? Ich meine ganz offensichtlich wird keine der Bedingungen jemals eintreffen, denn du setzt $Status und $projekt_status auf Werte die nicht in dem IF vorkommen. Und was das mit dem selected-Status zu tun haben soll ist auch unklar, den hast du ja einfach nur für das $disabled kopiert. Aber so ohne Schleife macht das auch wieder keinen Sinn, weil du ja gar nicht bei jedem Durchlauf auf irgendwas prüfen kannst, damit hat sich die Logik komplett geändert.
                      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.

                      Kommentar


                      • #12
                        Und genau da ist das Problem, ich glaube wir reden die ganzen Zeit aneinander vorbei und ich weiß nicht wie ich es anderes erklären soll.

                        Kommentar


                        • #13
                          Vllt. kommentierst du einfach erstmal deinen Code so durch, dass du selbst weisst was du überhaupt machen willst. Aus dem Code geht das jedenfalls nicht hervor, du scheinst dir damit nur die ganze Zeit selber auf die Füße zu treten.
                          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.

                          Kommentar


                          • #14
                            Ich weiß was ich möchte oder wie es funktionieren soll. Ich weiß nu nicht wie ich es umsetzten soll, das ist eben mein Problem.

                            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
                            $projekt_status "904895f93ccb9f1f44479582c9d4bd4e";

                            // Hier prüfe ich ob das Projekt folgenden Status hat
                            if ($projekt_status == "a3e18039dbdaa14cc52bbaa3d4e4a4c7" OR
                                
                            $projekt_status == "5da361ecee7c0c71971dab119a9babce" OR
                                
                            $projekt_status == "54a556b805869244d18fe0dc0c19c4ce" OR
                                
                            $projekt_status == "3018babe7d2a1fbeb43c3bae0fcd532f" OR
                                
                            $projekt_status == "2afeb8b8f86e17862748b6402da01db6" OR
                                
                            $projekt_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 '';
                                }

                            }
                            Dieses HTMl ist nur als Beispiel, später wird es über eine Schleife zusammengebaut, wie im ersten Posting zu sehen ist

                            PHP-Code:
                            <form action="" method="POST">

                              <select name="projekt_status" id="projekt_status">

                                <option value="07bc9a80a0da7031218f1a9514a327c3" <?= $projekt_status == "07bc9a80a0da7031218f1a9514a327c3" "selected" "" ?> <?= $disabled?>>offen / nicht angefragt</option>

                                <option value="8f9bdc964d3b7496587b8161e2c43d1f" <?= $projekt_status == "8f9bdc964d3b7496587b8161e2c43d1f" "selected" "" ?> <?= $disabled?>>angefragt</option>

                                <option value="904895f93ccb9f1f44479582c9d4bd4e" <?= $projekt_status == "904895f93ccb9f1f44479582c9d4bd4e" "selected" "" ?> <?= $disabled?>>beantwortet / KVA erstellt</option>

                                <option value="179d504085be6c8bb92173f54cdd39e1" <?= $projekt_status == "179d504085be6c8bb92173f54cdd39e1" "selected" "" ?> <?= $disabled?>>Bestätigt - Besteller</option>

                                <option value="a3e18039dbdaa14cc52bbaa3d4e4a4c7" <?= $projekt_status == "a3e18039dbdaa14cc52bbaa3d4e4a4c7" "selected" "" ?> <?= $disabled?>>Bestätigt - PL</option>

                                <option value="5da361ecee7c0c71971dab119a9babce" <?= $projekt_status == "5da361ecee7c0c71971dab119a9babce" "selected" "" ?> <?= $disabled?>>Bestätigt - KsT</option>

                                <option value="54a556b805869244d18fe0dc0c19c4ce" <?= $projekt_status == "54a556b805869244d18fe0dc0c19c4ce" "selected" "" ?> <?= $disabled?>>bestellt / bestätigt</option>

                                <option value="3018babe7d2a1fbeb43c3bae0fcd532f" <?= $projekt_status == "3018babe7d2a1fbeb43c3bae0fcd532f" "selected" "" ?> <?= $disabled?>>in Kommissionierung</option>

                                <option value="2afeb8b8f86e17862748b6402da01db6" <?= $projekt_status == "2afeb8b8f86e17862748b6402da01db6" "selected" "" ?> <?= $disabled?>>abgeholt / unterwegs</option>

                                <option value="6e623de7c366c92accd2b4a7ee49ad2a" <?= $projekt_status == "6e623de7c366c92accd2b4a7ee49ad2a" "selected" "" ?> <?= $disabled?>>zurückgeliefert</option>

                                <option value="602c5602d0a86003a925951b46a012b4" <?= $projekt_status == "602c5602d0a86003a925951b46a012b4" "selected" "" ?> <?= $disabled?>>geprüft / zurückgeführt</option>

                                <option value="5555d1be56a4b410da755026783b4d9e" <?= $projekt_status == "5555d1be56a4b410da755026783b4d9e" "selected" "" ?> <?= $disabled?>>abgeschlossen</option>

                                <option value="99ec7d6e86ea7540c6479c198aa1bf70" <?= $projekt_status == "99ec7d6e86ea7540c6479c198aa1bf70" "selected" "" ?> <?= $disabled?>>storniert</option>

                              </select> 

                            </form>

                            Kommentar


                            • #15
                              Dieses HTMl ist nur als Beispiel, später wird es über eine Schleife zusammengebaut
                              Macht schon keinen Sinn, weil die Logik sich dann ändert. Willst du jetzt alles von Hand machen oder nicht?

                              Also ist $disabled für alle options gleich?
                              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.

                              Kommentar

                              Lädt...
                              X