我有一个我正在实施的票务系统,其中一个方面是根据已解决或未解决的票据生成表格,并且有一个下拉框,当它发生变化时,将一个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调用以填充模态。
谢谢!
答案 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