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

时间:2016-05-16 18:10:42

标签: javascript php jquery ajax twitter-bootstrap

我有一个我正在实施的票务系统,其中一个方面是根据已解决或未解决的票据生成表格,并且有一个下拉框,当它发生变化时,将一个AJAX请求发送到另一个页面生成表,这部分都有效。我没有坚持的部分是从选定的票证中获取相关信息到引导模态。我的意思是我有一个视图按钮,它位于生成的表格中每行的最后一列,当他们点击这个视图时,我想要激活一个模式,它将包含票据以及评论和方法解决它。我想也许我可以使用模态的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调用以填充模态。

谢谢!

1 个答案:

答案 0 :(得分:1)

更改创建表行的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)检测viewTD上的点击,

(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