使用数据库中的 foreach 时,下拉列表为空

问题描述

我的程序从一张桌子上列出了一个老师的名单。 然后我想在下拉列表中显示名称,但由于某种原因,它打开一个空下拉列表,其中包含空行数,如表中的记录。 这是我解决这个问题的代码

    <div>
    <label for="teacher_name"> שם המורה:  </label>            
    <select name="teacher_name" id="teacher_name">
    <?PHP if (empty($teachers)): ?>
        <p> No teachers found</p>

    <?PHP else: ?>

        <?PHP if($status == 'new'): ?>
            <option value="please_select">נא לבחור</option>
            <?PHP foreach ($teachers as $teacher): ?>
                    
                <option value=<?=$teacher['teacher_name']; ?> name="teacher_name" id="teacher_name"></option>

            <?PHP endforeach; ?> 
        <?PHP endif; ?>   
            
            <?PHP if($status == 'edit'): ?>
                <p> edit</p>
                <input type="text" name="teacher_name" id="teacher_name"  value="<?= htmlspecialchars($lesson->teacher_name); ?>" >
            <?PHP endif; ?>                   
        <?PHP endif; ?>         
        </select>

    </div>

解决方法

如果您“查看源代码”输出,我想您会看到选项标签中确实有数据 - 但您尚未设置要显示的值,它应该更像是 <option ....>Show this in the list</option>

试试这个(与您使用的代码相同,但在将显示的地方再次添加教师姓名变量)

<option value=<?=$teacher['teacher_name']; ?> name="teacher_name" id="teacher_name"><?=$teacher['teacher_name']; ?></option>