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

PHP:Dynamiczne rozwijane z optgroup

Dwie pętle for nie są zagnieżdżone w kodzie:

foreach ($groups as $label => $opt) { ?>
    <optgroup label="<?php echo $label; ?>">
<?php   } <-- wrong here
    foreach ($groups[$label] as $id => $name) { ?>
        <option value="<?php echo $id; ?>"><?php echo $name; ?></option>
<?php } ?>

W rezultacie najpierw tworzone są wszystkie grupy opt, a następnie dodawani są pracownicy ostatniej grupy (ponieważ $label i $opt są również dostępne po zakończeniu pętli).

Musisz zagnieździć pętle (używając alternatywnej składni do sterowania struktury ):

<?php foreach($groups as $label => $opt): ?>
    <optgroup label="<?php echo $label; ?>">
    <?php foreach ($opt as $id => $name): ?>
        <option value="<?php echo $id; ?>"><?php echo $name; ?></option>
    <?php endforeach; ?>
    </optgroup>
<?php endforeach; ?>

Ponadto myślę, że musisz użyć emp_id , a nie grp_id podczas tworzenia tablicy:

while ($qa = $employees->GetRows()) {
    $groups[$qa['groupname']][$qa['emp_id']] = $qa['empname'];
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. jak utworzyć unikalną stronę php dla każdego wiersza w bazie danych mysql?

  2. schemat bazy danych przyjaźni

  3. Czy MySQL może używać indeksów, gdy między warunkami jest OR?

  4. Jak uzyskać różnicę między kolejnymi wierszami w MySQL?

  5. Dokładne znaczenie klucza obcego MySQL Klauzula „on delete rest”