我正在 Laravel 中开发一个小项目,其中有两个下拉菜单。
用户从第一个下拉列表中选择主题,用户从第二个下拉列表中选择成绩。
一旦用户从主题下拉列表中选择 sub1 来选择第二个主题,第一个选定的值就不应该出现。
在图像中,我想输入数学和 10 年级的分数,当我想为 10 年级的其他科目添加分数时,数学科目不应该出现,或者至少应该禁用。
如何控制这一点,或者如何在 Laravel 中验证这一点,以确保同一年级同一科目的重复分数?
一旦我输入了 10 年级数学的分数,第二次如果我想输入 10 年级数学的分数,它应该不允许我输入。
最佳答案
如果您发布代码,会更容易理解您到目前为止做了什么。
据我了解,您可以通过几种方法来实现这一目标。一位正在关注。
您可以将现有标记从 Controller 传递到 View 。
Controller
// Get the ids of already marked subjects for the given user
$markedSubjectIds = StudentMark::where('student_id', $studentId)
->get()
->pluck('subject_id')
->toArray();
$subjects = // Subjects
return view('sudent.marks', compact('markedSubjectIds', 'subjects'));
查看
<select name="subject" class="form-control">
@foreach($subjects as $subject)
<option value="{{$subject->id}}" {{ in_array($subject->id, $markedSubjectIds) ? 'disabled' : ''}}>{{$subject->name}}</option>
@endforeach
</select>
我相信您可以使用查询生成器从所有主题中过滤掉已标记的主题,但我不知道您的表结构如何。
关于javascript - 提交后如何从下拉列表中删除选定的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64097679/