Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak wyświetlić drugie menu rozwijane w oparciu o poprzednią wartość listy rozwijanej za pomocą JavaScript

Przede wszystkim masz duplikat id wartość w kodzie HTML. Zakładam div nie powinien mieć bir ale biro jako id wartość atrybutu.

Następnie możesz dodać data-dept do option elementy, które dodajesz dynamicznie do drugiego menu rozwijanego i nadaj mu wartość deptId :

foreach ($birs as $rl)
{
    ?>
    <option value="<?php echo $rl->birId ?>"
            data-dept="<?php echo $rl->deptId ?>" >
        <?php echo $rl->birName ?></option>
    <?php
}

Następnie w skrypcie odczytaj tę wartość za pomocą dataset.dept (upewnij się, że poprawiłeś id div atrybut w kodzie HTML).

Oto fragment (bez PHP):

function checkvalue(val) { 
    if (+val) { 
        for (var option of bir.options) {
            if (option.dataset.dept) { // don't touch first entry
                option.style.display = option.dataset.dept == val ? '' : 'none';
            }
        }
    }
    bir.value = 0; // reset selection
    biro.style.display = +val ? '' : 'none'; // show/hide 
}

function checkvalues(val) {}
<div class="col-md-6">
    <div class="form-group">
        <label for="Dept">Dept</label>
        <select class="form-control required" id="Dept" name="Dept" onchange='checkvalue(this.value)'>
            <option value="0">Dept</option>
            <option value="2">2</option>
            <option value="5">5</option>
        </select>
    </div>
</div>  
<div class="col-md-6" >
    <div class="form-group" id="biro" style='display:none'>
        <label for="bir">Bir</label>
        <select class="form-control required" id="bir" name="bir" onchange='checkvalues(this.value)'>
            <option value="0">Pilih Bir</option>
            <option value="9" data-dept="2">bir for 2</option>
            <option value="10" data-dept="5">bir for 5</option>
            <option value="8" data-dept="2">another bir for 2</option>
            <option value="15" data-dept="5">another bir for 5</option>
        </select>
    </div>
</div>  



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. @ Symbol - rozwiązanie dla rekurencyjnego zapytania SELECT w Mysql?

  2. Złożone zapytania do bazy danych w yii2 z Active Record

  3. Jak rozwiązać org.hibernate.QueryException:Nie wszystkie nazwane parametry zostały ustawione jako błąd?

  4. Wybór najczęściej występującej wartości z relacji - instrukcja SQL

  5. Co jest szybsze — INSTR czy LIKE?