包含数据库中相关信息的开放模态

Open modal containing relevant information from database

本文关键字:模态 信息 数据库 包含      更新时间:2023-09-26

我正在实现一个票务系统,它的一个方面是根据已解决或未解决的票务生成表,并且有一个下拉框,当它发生更改时,会向另一个页面发送AJAX请求以生成表,这部分都能工作。我没有陷入困境的部分是将所选票证中的相关信息获取到引导模式中。我的意思是,我在生成的表中每行的最后一列都有一个视图按钮,当他们单击该视图时,我想激活一个模式,该模式将包含票证、注释和解决方法。我在想,也许我可以使用modals的isShown函数向某个页面发送AJAX请求,该页面可以使用票证ID生成该信息。我可以发送一些方法。这似乎是一个可能的解决方案吗?如果我要实现这个解决方案,发送ticketID的最简单方法是什么?我会为表的每一行制作一个表格,并制作一个隐藏的id字段吗?或者有更简单的方法吗?我创建表格的代码如下:

if($_POST['ticketType'] == "UnresolvedTickets"){
    $selectQuery = "SELECT * FROM tickets WHERE ticketsResolved = 'New' OR ticketsResolved = 'Open'";
    $stmt = $dbh->prepare($selectQuery);
    $stmt->execute();
    $info = $stmt->fetchAll(PDO::FETCH_ASSOC);
    echo "<br>";
    echo "<table style='width:100%; ' class = 'table table-striped table-bordered table-hover'>";
    echo "<tr>";
    echo" <th>Requestor</th>";
    echo "<th>Description</th>";
    echo "<th>Type</th>";
    echo "<th>Status</th>";
    echo "<th>Severity</th>";
    echo "<th>Request Date</th>";
    echo "<th>Ticket #</th>";
    echo "<th>View Ticket</th>";
    echo "</tr>";
    foreach($info as $item){
        echo "<tr>";
        $date = $item['ticketDate'];
        $newDate = date('Y-m-d h:i:s a', strtotime($date));
        echo "<td>{$item['ticketContact']}</td><td>{$item['ticketDescription']}</td><td>{$item['ticketType']}</td><td>{$item['ticketsResolved']}</td><td>{$item['ticketStatus']}</td><td>{$newDate}</td><td>{$item['ticketID']}</td><td><a href='http://link'>view</a></td>";
        echo "</tr>";
    }
    echo "</table>";
}else{
    $selectQuery = "SELECT * FROM tickets WHERE ticketsResolved = 'Resolved'";
    $stmt = $dbh->prepare($selectQuery);
    $stmt->execute();
        $info = $stmt->fetchAll(PDO::FETCH_ASSOC);
    echo "<br>";
    echo "<table style='width:100%; ' class = 'table table-striped table-bordered table-hover'>";
    echo "<tr>";
    echo" <th>Requestor</th>";
    echo "<th>Description</th>";
    echo "<th>Type</th>";
    echo "<th>Status</th>";
    echo "<th>Severity</th>";
    echo "<th>Request Date</th>";
    echo "<th>Ticket #</th>";
    echo "<th>View Ticket</th>";
    echo "</tr>";
    foreach($info as $item){
        echo "<tr>";
        $date = $item['ticketDate'];
        $newDate = date('Y-m-d h:i:s a', strtotime($date));
        echo "<td>{$item['ticketContact']}</td><td>{$item['ticketDescription']}</td><td>{$item['ticketType']}</td><td>{$item['ticketsResolved']}</td><td>{$item['ticketStatus']}</td><td>{$newDate}</td><td>{$item['ticketID']}</td><td><a href='http://link'>view</a></td>";
        echo "</tr>";
    }
    echo "</table>";
}

有没有一种不同/更容易/更好的方式来实现这个模式的想法,或者我的想法是否正确?如果我的想法是正确的,我会有点困惑于将ticketID放入AJAX调用以填充模态。

谢谢!

更改创建表行的PHP,如下所示:

echo "<td>{$item['ticketContact']}</td><td>{$item['ticketDescription']}</td><td>{$item['ticketType']}</td><td>{$item['ticketsResolved']}</td><td>{$item['ticketStatus']}</td><td>{$newDate}</td><td class="tidTD">{$item['ticketID']}</td><td class="viewTD">View</td>"

请注意,我为TD分配了类,并将这些类用于:

(1) 检测视图TD和上的点击

(2) 找到ticketID的输入字段值

然后,捕捉点击查看按钮:

$(document).on('click', '.viewTD', function(){
    var tid = $(this).closest('tr').find('.tidTD input').val();
    $.ajax({
        type: 'post',
         url: 'ajax.php',
        data: 'tid=' +tid,
        success: function(d){
            $('.modal-body').html(d);
            $('#myModal').modal('show');
        }
    }); //END ajax
}); //END viewTD click