选择在动态ID引导程序4模式中不填充

问题描述 投票:2回答:1

我现在在哪里

我有一个HTML表,其中有许多行由SQL语句的PHP foreach循环填充。该表的最后一列包含一个按钮下拉列表,其中一个是“分配车辆”。该按钮触发带有选择框的bootstrap-4模态。该表是车辆列表,模态中的选择框是员工列表。

我想发生什么

用户单击表中的“分配车辆”。弹出模式,允许用户选择要分配的员工。然后,将vehicle_id和employee_id传输到另一个页面进行处理。

The代码



<table id="example23" class="display nowrap table table-hover table-striped table-bordered" cellspacing="0" width="100%"  data-order='[[ 3, "asc" ]]' data-page-length='25'>
    <thead>
        <tr>
            <th class="text-center">Year</th>
            <th class="text-center">Make</th>
            <th class="text-center">Model</th>
            <th class="text-center">Unit #</th>
            <th class="text-center">Asset #</th>
            <th class="text-center">Assignee</th>
            <th class="text-center">Admin</th>
        </tr>
    </thead>
    <tfoot>
        <tr>
            <th class="text-center">Year</th>
            <th class="text-center">Make</th>
            <th class="text-center">Model</th>
            <th class="text-center">Unit #</th>
            <th class="text-center">Asset #</th>
            <th class="text-center">Assignee</th>
            <th class="text-center">Admin</th>
        </tr>
    </tfoot>
    <tbody>
        <?php 
            $a = 0;
            $u = 0;

            foreach ($vehicle->fetchAll() as $row){

            $a++;
            $u++;
        ?>
        <tr>
            <td style="text-align: center; vertical-align: middle;"><?php echo $row['Veh_Year']; ?></td>
            <td style="text-align: center; vertical-align: middle;"><?php echo $row['Vehicle_Make_Make']; ?></td>
            <td style="text-align: center; vertical-align: middle;"><?php echo $row['Vehicle_Model_Model']; ?></td>
            <td style="text-align: center; vertical-align: middle;"><?php echo $row['Veh_Unit_No']; ?></td>
            <td style="text-align: center; vertical-align: middle;"><?php echo $row['Veh_Asset_No']; ?></td>
            <!--Creates Unassigned Tag for Vehicle if Database doesn't return a value for Assignee First Name  -->
            <?php if (!empty($row['First_Name'])) { ?>
            <td style="text-align: center; vertical-align: middle;"><a href="#"><?php echo $row['First_Name']; echo ' ' . $row['Last_Name']; ?></a></td>
            <?php } else { ?>
            <td style="text-align: center; vertical-align: middle;"><strong>Unassigned</strong></td>
            <?php } ?>
            <td style="text-align: center;">
                <div class="btn-group">
                    <button type="button" class="btn btn-info dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                        Admin Action
                    </button>
                    <div class="dropdown-menu">
                    <?php if (!empty($row['First_Name'])) { ?>
                    <a class="dropdown-item" href="#" data-toggle="modal" data-target="#Unassign_<?php echo $u; ?>">Unassign Vehicle</a>
                    <?php } else { ?>
                    <a class="dropdown-item" href="#" data-toggle="modal" data-target="#Assign_<?php echo $a; ?>">Assign Vehicle</a>
                    <?php } ?>

                    <a class="dropdown-item" href="https://mailmelater.com/modify-vehicle.php?vehid=<?php echo $row['Veh_ID']; ?>">Modify Vehicle</a>
                    <a class="dropdown-item" href="https://mailmelater.com/retire-vehicle.php?vehid=<?php echo $row['Veh_ID']; ?>">Retire Vehicle</a>
                </div>    
            </td>
        </tr>
        <div class="modal fade" id="Unassign_<?php echo $u; ?>" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
            <div class="modal-dialog modal-dialog-centered" role="document">
                <div class="modal-content">
                    <div class="modal-header">
                        <h5 class="modal-title" id="exampleModalLongTitle">Unassign Confirmation</h5>
                        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                            <span aria-hidden="true">&times;</span>
                        </button>
                    </div>
                    <div class="modal-body">
                        Are you certain that you would like to unassign the 
                        <span class="font-weight-bold"><?php echo $row['Vehicle_Make_Make']; echo ' ' . $row['Vehicle_Model_Model']; ?></span> 
                        from 
                        <span class="font-weight-bold"><?php echo $row['First_Name']; echo ' ' . $row['Last_Name']; ?></span>?
                    </div>
                    <div class="modal-footer">
                        <button type="button" class="btn btn-secondary waves-effect waves-light" data-dismiss="modal">Cancel</button>
                        <button type="button" class="btn btn-info waves-effect waves-light">
                            <a class="text-white" href="https://mailmelater.com/includes/functions/fn-unassign-vehicle.php?vehid=<?php echo $row['Veh_ID']; ?>">Confirm</a>
                        </button>
                    </div>
                </div>
            </div>
        </div>
        <div class="modal fade" id="Assign_<?php echo $a; ?>" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
            <div class="modal-dialog modal-dialog-centered" role="document">
                <div class="modal-content">
                    <div class="modal-header">
                        <h5 class="modal-title" id="exampleModalLongTitle">Assign Vehicle to User</h5>
                        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                            <span aria-hidden="true">&times;</span>
                        </button>
                    </div>
                    <div class="modal-body">
                        <select name="check" class="select2 form-control custom-select" style="width: 100%;">
                            <?php foreach ($assign->fetchall() as $assignrow) { ?>                                      
                            <option value="<?php echo $assignrow['Emp_ID']; ?>">
                                <?php echo $assignrow['First_Name']; echo ' ' . $assignrow['Last_Name']; ?>
                            </option>
                            <?php } $assign->closeCursor(); ?>
                        </select>
                    </div>
                    <div class="modal-footer">
                        <button type="button" class="btn btn-secondary waves-effect waves-light" data-dismiss="modal">Cancel</button>
                        <button type="button" class="btn btn-info waves-effect waves-light">
                            <a class="text-white" href="https://mailmelater.com/includes/functions/fn-assign-vehicle.php?vehid=<?php echo $row['Veh_ID']; ?>">Confirm</a>
                        </button>
                    </div>
                </div>
            </div>
        </div>
        <?php } $vehicle->closeCursor(); ?>
    </tbody>
</table>

问题

您会从代码中注意到“分配”模式ID是动态分配的。我觉得这是必要的,以便将相应行的车辆ID传递给模式。不幸的是,只要模态ID是动态分配的,此解决方案仅适用于第一条记录(或当Veh_ID = 1时),对于其他任何行,模态都会显示在选择框中,但没有结果,选择框为空。

“ Unassign”模式即使在动态分配ID的情况下,也可以按编写时的状态正常运行。从我的角度来看,这似乎只是选择框的问题,尽管我充其量只是一名新手。

示例

Example page with both functions active

在上面链接的页面上,表中的任何行,如果将鼠标悬停在“修改车辆”上,您都可以在地址栏中看到ID。在任何没有vehicle_id = 1的车辆上单击“分配车辆”,将在模式中产生一个空的选择框。请根据需要随时分配或取消分配。

javascript php jquery html bootstrap-modal
1个回答
0
投票

$assign->fetchall()在第二个循环上变为null您应该将其分配给类似$assign_all = $assign->fetchall();

的变量

然后更改您的身体

<tbody>
    <?php 
        $assign_all = $assign->fetchall();
        $a = 0;
        $u = 0;

        foreach ($vehicle->fetchAll() as $row){

        $a++;
        $u++;
    ?>
    <tr>
        <td style="text-align: center; vertical-align: middle;"><?php echo $row['Veh_Year']; ?></td>
        <td style="text-align: center; vertical-align: middle;"><?php echo $row['Vehicle_Make_Make']; ?></td>
        <td style="text-align: center; vertical-align: middle;"><?php echo $row['Vehicle_Model_Model']; ?></td>
        <td style="text-align: center; vertical-align: middle;"><?php echo $row['Veh_Unit_No']; ?></td>
        <td style="text-align: center; vertical-align: middle;"><?php echo $row['Veh_Asset_No']; ?></td>
        <!--Creates Unassigned Tag for Vehicle if Database doesn't return a value for Assignee First Name  -->
        <?php if (!empty($row['First_Name'])) { ?>
        <td style="text-align: center; vertical-align: middle;"><a href="#"><?php echo $row['First_Name']; echo ' ' . $row['Last_Name']; ?></a></td>
        <?php } else { ?>
        <td style="text-align: center; vertical-align: middle;"><strong>Unassigned</strong></td>
        <?php } ?>
        <td style="text-align: center;">
            <div class="btn-group">
                <button type="button" class="btn btn-info dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                    Admin Action
                </button>
                <div class="dropdown-menu">
                <?php if (!empty($row['First_Name'])) { ?>
                <a class="dropdown-item" href="#" data-toggle="modal" data-target="#Unassign_<?php echo $u; ?>">Unassign Vehicle</a>
                <?php } else { ?>
                <a class="dropdown-item" href="#" data-toggle="modal" data-target="#Assign_<?php echo $a; ?>">Assign Vehicle</a>
                <?php } ?>

                <a class="dropdown-item" href="https://mailmelater.com/modify-vehicle.php?vehid=<?php echo $row['Veh_ID']; ?>">Modify Vehicle</a>
                <a class="dropdown-item" href="https://mailmelater.com/retire-vehicle.php?vehid=<?php echo $row['Veh_ID']; ?>">Retire Vehicle</a>
            </div>    
        </td>
    </tr>
    <div class="modal fade" id="Unassign_<?php echo $u; ?>" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
        <div class="modal-dialog modal-dialog-centered" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <h5 class="modal-title" id="exampleModalLongTitle">Unassign Confirmation</h5>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                </div>
                <div class="modal-body">
                    Are you certain that you would like to unassign the 
                    <span class="font-weight-bold"><?php echo $row['Vehicle_Make_Make']; echo ' ' . $row['Vehicle_Model_Model']; ?></span> 
                    from 
                    <span class="font-weight-bold"><?php echo $row['First_Name']; echo ' ' . $row['Last_Name']; ?></span>?
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary waves-effect waves-light" data-dismiss="modal">Cancel</button>
                    <button type="button" class="btn btn-info waves-effect waves-light">
                        <a class="text-white" href="https://mailmelater.com/includes/functions/fn-unassign-vehicle.php?vehid=<?php echo $row['Veh_ID']; ?>">Confirm</a>
                    </button>
                </div>
            </div>
        </div>
    </div>
    <div class="modal fade" id="Assign_<?php echo $a; ?>" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
        <div class="modal-dialog modal-dialog-centered" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <h5 class="modal-title" id="exampleModalLongTitle">Assign Vehicle to User</h5>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                </div>
                <div class="modal-body">
                    <select name="check" class="select2 form-control custom-select" style="width: 100%;">
                        <?php foreach ($assign_all as $assignrow) { ?>                                      
                        <option value="<?php echo $assignrow['Emp_ID']; ?>">
                            <?php echo $assignrow['First_Name']; echo ' ' . $assignrow['Last_Name']; ?>
                        </option>
                        <?php } $assign->closeCursor(); ?>
                    </select>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary waves-effect waves-light" data-dismiss="modal">Cancel</button>
                    <button type="button" class="btn btn-info waves-effect waves-light">
                        <a class="text-white" href="https://mailmelater.com/includes/functions/fn-assign-vehicle.php?vehid=<?php echo $row['Veh_ID']; ?>">Confirm</a>
                    </button>
                </div>
            </div>
        </div>
    </div>
    <?php } $vehicle->closeCursor(); ?>
</tbody>
© www.soinside.com 2019 - 2024. All rights reserved.