Mysql
 sql >> база данни >  >> RDS >> Mysql

PHP:Динамично падащо меню с optgroup

Двата for цикъла не са вложени във вашия код:

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 } ?>

Резултатът е, че първо се създават всички opt групи и след това се добавят служителите за последната група (защото $label и $opt са налични и след приключване на цикъла).

Трябва да вложите циклите (използвайки алтернативен синтаксис за контрол структури ):

<?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; ?>

Освен това мисля, че трябва да използвате emp_id , а не grp_id при създаване на масива:

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. Когато използвате заключване на MySQL FOR UPDATE, какво точно е заключено?

  2. MySQL TIMEDIFF() срещу TIMESTAMPDIFF():Каква е разликата?

  3. Как да преименувам външен ключ в mysql?

  4. Форматирайте число като процент в MySQL

  5. Как да предадете изрази за условия към mySql заявка