2016-04-01 16 views
3

hoffen, dass Sie schön und gut,Tropfen Liste basierend auf einer anderen Dropdown-Liste

i ein Dropdown-Liste, die Kategorienliste enthält wie folgt:

<div class='form-group'> 
    <br/> 
     <label class='control-label col-md-2 'for='id_date'>Category</label> 
      <div class='col-md-2' class='form-group' class='col-md-11'> 
      <select class="form-control " id="sel1" ng-model="category" ng-init="" > 
         <?php 
         mysql_connect('localhost', 'root', ''); 

         mysql_select_db('my'); 

         $sql = "SELECT category FROM categories"; 

         $result = mysql_query($sql); 
         while ($row = mysql_fetch_array($result)) { 
          echo "<option value='" . $row['category'] . "'>" . $row['category'] . "</option>"; 
         } ?> 
         </select> 
         </div> 
        </div> 

unterhalb diesem wählen, ich ein anderes wählen habe, die ist Element aus der Kategorie zu wählen, wie folgt:

<div class='form-group'> 
    <br/> 
     label class='control-label col-md-2 ' for='id_date'>element</label> 
      <div class='col-md-2' class='form-group' class='col-md-11'> 
      <select class="form-control" id="sel12" ng-model="elemnt" ng-init="" > 
         <?php 
         mysql_connect('localhost', 'root', ''); 

         mysql_select_db('my'); 

         $sql = "SELECT element FROM elements where category = "; 

         $result = mysql_query($sql); 
         while ($row = mysql_fetch_array($result)) { 
          echo "<option value='" . $row['element'] . "'>" . $row['element'] . "</option>"; 
         } ?> 
         </select> 
         </div> 
        </div> 

, wie ich den Inhalt der zweiten Dropdown-Liste machen auf der ersten Dropdown-Liste auf der Grundlage? Wie kann ich beispielsweise die Eingabe der ersten Drop-Liste in die zweite SQL-Anweisung einfügen?

grüße.

+0

Was ich verstehe, ist, dass Sie abhängiges Dropdown benötigen. Dazu müssen Sie einen Ajax-Aufruf bei Änderung des ersten Dropdwon machen und dann das zweite Dropdown-Feld mit dem Ergebnis des Ajax-Aufrufs –

+0

ausfüllen, soweit ich/wir sehen können, verwenden Sie angularJS? Besser nach Datenbindungsbeispielen suchen als nach regulären PHP/Ajax-Skripten, wie diesem: http://stackoverflow.com/questions/26518220/angularjs-dynamic-ng-option-to-link-two-drop-downs – mitkosoft

Antwort

1

Sie können das nicht nur mit PHP tun.

Sie müssen Javascript/Jquery und Ajax verwenden.

Erstellen Sie ein PHP-Skript, das Daten aus einer Anfrage lädt. Nach dem ändern Sie zuerst verwenden Sie Ajax-Funktion, die Ihr PHP-Skript mit dem richtigen Wert aufrufen und aktualisieren Sie die zweite Auswahl.

<select class="form-control " id="sel1" ng-model="category" ng-init="" > 
         <?php 
        mysql_connect('localhost', 'root', ''); 

        mysql_select_db('my'); 

        $sql = "SELECT category FROM categories"; 

        $result = mysql_query($sql); 
        while ($row = mysql_fetch_array($result)) { 
         echo "<option value='" . $row['category'] . "'>" . $row['category'] . "</option>"; 
        } ?> 
        </select> 

JQuery

$("#sel1").change(function(){ 
$.ajax({ 
    method: "POST", 
    url: "yourscript.php", 
    data: {myval : $(this).val()}; 
}) 
    .done(function(msg) { 
    //Here append your result in your second select 
    }); 

}); 

PHP

<?php 
if(isset($_POST['myval'])) 
{ 
    //SQL query where id=myval 
    echo $result;//result of query 
} 
+0

Vielen Dank , irgendein Code, um dies zu tun? – MSMC

+0

Warte, ich poste ein Beispiel – Alexis

+0

@Alexis sagen nie 'nie', es kann mit reiner PHP-Logik gemacht werden. – mitkosoft

0

Verwendung von reinem PHP mit Zwischen einreichen:

<?php 
    if(isset($_POST['submitForm']) && $_POST['submitForm'] == 1){ 
     //form is submitted by button, proceed with DB stuffs 
     echo 'Great, you have submitted the form, will check VALUES and do INSERT.'; 
    } 
?> 
<body> 
    <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>" name="aForm"> 
     <input type="hidden" name="submitForm" id="submitForm"> 
     <select name="category" onchange="this.form.submit();"> 
      <option value="">Choose...</option> 
      <option value="1" <?=($_POST['category']==1 && !$_POST['submitForm'])?'selected':'';?>>Cat 1</option> 
      <option value="2" <?=($_POST['category']==2 && !$_POST['submitForm'])?'selected':'';?>>Cat 2</option> 
      <option value="3" <?=($_POST['category']==3 && !$_POST['submitForm'])?'selected':'';?>>Cat 3</option> 
     </select> 
     <select name="element">     
      <?php 
      if($_POST['category'] && !$_POST['submitForm']){ 
       // SELECT from DB based on passed category ID 
       echo '<option value="">Now choose element...</option>'; 
       echo '<option value="1">Elem 1</option>'; 
       echo '<option value="2">Elem 2</option>'; 
       echo '<option value="3">Elem 3</option>'; 
      }else{ 
       echo '<option value="">Choose category first...</option>'; 
      } 
      ?> 
     </select> 
     <input type="button" name="btnSubmit" value="Submit" onclick="document.getElementById('submitForm').value = 1; this.form.submit();"> 
    </form> 
</body> 

Dies ist jedoch weder der beste noch der effizienteste Ansatz, das Skript demonstriert nur, wie ohne JS wie gewünscht gearbeitet werden kann.

Verwandte Themen