首页 > 解决方案 > 如何在表中的每一行中创建动态依赖下拉列表而不影响laravel中的任何行

问题描述

这是我工作的成果

在此处输入图像描述

问题是每次我在下拉列表中选择时,另一个列都会受到影响

在此处输入图像描述

这是html和javascript的代码

<!DOCTYPE html>

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <tbody class="assets" id="my_tab">
        <tr class='listData'>
            <td class="departmentName">
                <select name="department[]" id="department_1" class="form-control departmentList"></select>
            </td>
            <td class="sample">
                <select  name="courseName[]" id="courseName_1" class="form-control courseName"></select>
            </td>
            <td><input type="text" id="time[]" name="time[]" class="form-control form-group"></td>
            <td><input type="text" id="duration[]" name="duration[]" class="form-control form-group"></td>
            <td>
                <select name="professor" id="professor" class="form-control">
                    <option value="" disabled>Select Professor</option>
                    <option value="Pakistan">Pakistan</option>
                    <option value="India">India</option>
                </select>
            </td>
            <td>
                <a id="add_row" class="btn btn-primary waves-effect save_rows waves-light">
                    <i class="fa fa-plus">&nbsp; Add</i>
                </a>
            </td>
        </tr>
        <tr class='listData'>
            <td class="departmentName">
                <select name="department[]" id="department_2" class="form-control departmentList"></select>
            </td>
            <td class="sample">
                <select  name="courseName[]" id="courseName_2" class="form-control courseName"></select>
            </td>
            <td><input type="text" id="time[]" name="time[]" class="form-control form-group"></td>
            <td><input type="text" id="duration[]" name="duration[]" class="form-control form-group"></td>
            <td>
                <select name="professor" id="professor" class="form-control">
                    <option value="" disabled>Select Professor</option>
                    <option value="Pakistan">Pakistan</option>
                    <option value="India">India</option>
                </select>
            </td>
            <td>
                <a id="add_row" class="btn btn-primary waves-effect save_rows waves-light">
                    <i class="fa fa-plus">&nbsp; Add</i>
                </a>
            </td>
        </tr>
    </tbody>
</body>
</html>`

这是我的 javascript 的代码,我使用选择的 Id 来触发,但是当我开始选择时,其他行会受到一些影响

var htmls = []
    var sam = $('select[id^="department_"]')
    $('body').on('change', sam, function() {
        sam.each(function(index) {
            var departmentID = $(this).val()
            $.ajax({
                dataType: 'json',
                type: 'get',
                url: '/getCourses',
                data: {
                    'departmentID': departmentID,
                },
                success: function(data) {
                    htmls.push('<option value="" selected="" disabled="">Course</option>')
                    $.each(data, function(index, value) {
                            htmls.push('<option value="' + value.courseMasterID + '">' + value.CourseName + '</option>')
                        })
                        // $('.sample').each(function() {
                        //     var ccurseName = $(this).find('select').html(htmls)

                    // })
                    $('select[id^="courseName_"]').html(htmls)
                },
                error: function(data) {
                    alert(data.responseText)
                }
            })
        })
    })

标签: javascripthtml

解决方案


推荐阅读