Ankündigung

Einklappen
Keine Ankündigung bisher.

Umwandlung Dropdown zu Checkbox

Einklappen

Neue Werbung 2019

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

  • Umwandlung Dropdown zu Checkbox

    Hallo zusammen,
    ich würde gern mein Wordpress Template etwas überarbeiten. Und zwar möchte ich aus eier Dropdown Liste eine Checkbox machen. Der Code ist folgender:

    PHP-Code:
     <select name="extra_units[<?php print($extra['extra_id']); ?>]" id="extra_units_<?php print($extra['extra_id']); ?>" class="required">             <?php print($extra['quantity_dropdown_options']); ?>                                 </select>
    Dabei kann man im Auswahlfeld die einzelnen Stückzahlen auswählen. Da es auf meiner Seite nur die Stückzahl 0 oder 1 gibt würde ich daraus der einfachheit halber daraus einfach eine checkbox machen.
    Kann mir jemand da vielleicht einen Tipp geben? Gebastelt habe ich selber schon nur leider werden die Werte dann nie an die folgende Seite übermittelt.

  • #2
    Zu Checkboxen steht ein Beitrag in der Wissenssammlung.
    Wie die Auswertung vorgenommen wird entnimmst du der Dokumentation von Wordpress oder fragst in einem Wordpress-Forum nach.

    Kommentar


    • #3
      Ich würde das vielleicht sogar mit jQuery machen. So musst du dich nicht mit dem Array aus $extra ärgern und auch nicht gucken wie die Werte übergeben werden und ob diese richtig ankommen.

      HTML-Code:
      <script type="text/javascript">
      
      var html_field1 '<input class="input_1" type="checkbox" >';
      var html_field2 '<input class="input_2" type="checkbox" >';
      
      $('extra_units_').append( html_field1 );
      $('extra_units_').append( html_field2 );
      
      $('extra_units_').hide();
      
      
      // https://stackoverflow.com/questions/10307474/simulating-mouse-click-on-select-option-with-jquery
      $('.input_1').click(function(){
      
          $('extra_units_[value="4"]').attr('selected', 'selected').parent().focus();​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​
      
      });
      
      $('.input_2').click(function(){
      
          $('extra_units_[value="9"]').attr('selected', 'selected').parent().focus();​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​
      
      });
      
      </script>
      Muss natürlich noch von dir angepasst werden.

      Kommentar


      • #4
        Baasel danke für den Code. Leider sehe ich da noch nicht durch.

        Sagen wir ich habe eine Checkbox
        HTML-Code:
            <label class="switch">
          <input type="checkbox">
          <span class="slider round"></span>
        </label>
        Im Grunde müsste ich doch nur wenn die Checkbox aktiviert wird den Wert im Dropdownfeld 1 auswählen. Nur wie mach ich das? Javascript ist leider gar nicht meins.

        Kommentar


        • #5
          Hast du die Variable $extra selbst geschrieben? In welchem Code wird denn $extra['quantity_dropdown_options'] ein Wert zugewiesen?
          Rein theoretisch kannst du ja folgendes machen:
          PHP-Code:
            <input type="checkbox" name="extra_units[<?php print($extra['extra_id']); ?>]" id="extra_units_<?php print($extra['extra_id']); ?>">

          Kommentar


          • #6
            Das ist ein Template von einer Autovermietung. Aber ich möchte das für was völlig anderes benutzen. Man kann im Backend die Anzahl der Extras auswählen. Das sind dann wohl die $extra['quantity_dropdown_options']. Der Code selber ist in einer Schleife wo er für jedes Extra den namen und die Dropdown Auswahl anzeigt.

            Kommentar


            • #7
              Zitat von Eddgut Beitrag anzeigen
              Das ist ein Template von einer Autovermietung. Aber ich möchte das für was völlig anderes benutzen. Man kann im Backend die Anzahl der Extras auswählen. Das sind dann wohl die $extra['quantity_dropdown_options']. Der Code selber ist in einer Schleife wo er für jedes Extra den namen und die Dropdown Auswahl anzeigt.
              Probier doch mal aus, was mit meinem Code passiert wenn du ihn benutzt anstatt dem <select>. Irgendwelche PHP Fehlermeldungen?

              Kommentar


              • #8
                @JohnHSmith: Wer nutzt denn heutzutage noch print und das auch noch mit Klammern?

                PHP-Code:
                <?=$extra['extra_id'];?>
                ist doch viel kürzer!
                PHP-Manual ¡ mysql_* ist veraltet ¡ Debugging: Finde DEINE Fehler selbst ¡ Passwort-Hashing ¡ Prepared Statements

                Kommentar


                • #9
                  Ich habe mittlerweile eine Lösung gefunden wenn auch nicht sehr professionell, aber es funktioniert

                  PHP-Code:
                   <input type="checkbox" name="cb<?php print($extra['extra_id']); ?>" id="cb<?php print($extra['extra_id']); ?>" onclick="myfunction<?php print($extra['extra_id']); ?>(this);" />
                  PHP-Code:
                  function myfunction1(obj){
                      if (
                  obj.checked)
                      {
                               
                  selectItemByValue(document.getElementById('extra_units_1'), 1);     

                      }
                     else
                      {
                           
                  selectItemByValue(document.getElementById('extra_units_1'), 0);     
                      }

                  Kommentar


                  • #10
                    Ein Problem hätte ich aber noch. Und zwar wenn man auf die Seite zurück geht oder die Seite neu lädt "merkt" sich der Browser die Auswahl im Dropdown feld. Ich würde aber die Dropdown Felder gerne jedes mal auf 0 haben wenn die Seite neu geladen wird.

                    PHP-Code:
                     selectItemByValue(document.getElementById('extra_units_0'), 0);   
                             
                    selectItemByValue(document.getElementById('extra_units_1'), 0);   
                             
                    selectItemByValue(document.getElementById('extra_units_2'), 0);   
                             
                    selectItemByValue(document.getElementById('extra_units_3'), 0);   
                             
                    selectItemByValue(document.getElementById('extra_units_4'), 0);   
                             
                    selectItemByValue(document.getElementById('extra_units_5'), 0);   
                             
                    selectItemByValue(document.getElementById('extra_units_6'), 1);   
                             
                    selectItemByValue(document.getElementById('extra_units_7'), 0);   
                             
                    selectItemByValue(document.getElementById('extra_units_8'), 0); 
                    Den Code habe ich verwendet nur leider zeigt er keine wirkung.

                    Kommentar


                    • #11
                      Öhm.. Ja, so ein Mischmasch ist sehr häßlich. Aber wenn du meinst, dann darfst ("sollst") du auch Variablen nutzen. Und es gibt nicht nur den "PHP-Modus", man kann auch PHP in HTML:

                      PHP-Code:
                      <?php

                      // ...

                      $e $extra['extra_id'];

                      ?>

                      <input type="checkbox" name="cb<?= $e ?>" id="cb<?= $e ?>" onclick="myfunction<?= $e ?>(this);" />

                      <?php
                      // ...
                      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


                      • #12
                        Dafür gibt es das Attribut value, wenn du das ins select mit reinschreibst, also value="0", dann hast du immer diesen Wert als Vorgabe drin stehen.
                        Das sind aber Grundlagen zu HTML, da sollte man mindestens beherrschen.

                        Bei Checkboxen nimmt man äquivalent dann das Attribut checked.

                        Kommentar


                        • #13
                          Das habe ich schon versucht ledier funktioniert es nicht. Es sind immer die zuletzt gewählten werde ausgewählt beim neu laden der Seite.

                          Kommentar


                          • #14
                            Nicht umsonst schrieb ich am Anfang das du in einem Wordpress-Forum besser aufgehoben bist. Wordpress ist eben mehr oder weniger ein CMS, da muss man sich an die Spielregeln halten. Allein mit PHP/HMTL kommt man da nicht weiter.

                            Kommentar


                            • #15
                              Zitat von Ulfikado Beitrag anzeigen
                              @JohnHSmith: Wer nutzt denn heutzutage noch print und das auch noch mit Klammern?

                              PHP-Code:
                              <?=$extra['extra_id'];?>
                              ist doch viel kürzer!
                              Ja natürlich ist es kürzer, allerdings wird laut Standard ein PHP-Code mit <?php eingeleitet. Und den Rest hab ich ja auch nur kopiert

                              Kommentar

                              Lädt...
                              X