首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >单击“内部模式”按钮后刷新或重发模式

单击“内部模式”按钮后刷新或重发模式
EN

Stack Overflow用户
提问于 2015-09-29 19:26:52
回答 1查看 6.4K关注 0票数 0

在主页上,我有一个数据表,其中包括每一行的按钮。该按钮允许用户在弹出模式上单击和查看特定于该对象的错误。在模式中,我有一个按钮,用户可以在其中清除错误。当用户单击其中一个清除按钮时,我在弄清楚如何刷新模式以显示最近的内容或重新打开模式时遇到了问题。

主页按钮(打开模式):

代码语言:javascript
运行
复制
<a data-toggle="modal" data-target="#viewclustererrors" href="./cluster_errors.php?cluster='.urlencode($row2['CLUSTER_NAME']).'" class="btn-sm btn-success"> Errors </a>

主页按钮打开模式,发送$cluster变量并从cluster_errors.php页面加载内容。

cluster_errors.php (情态内容):

代码语言:javascript
运行
复制
<?php  
if ( !empty($_GET['cluster'])) {
    $cluster = $_GET['cluster'];
}
?>
<head>
</head>
<body>
  <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal"
    aria-hidden="true">&times;</button>
    <h4 class="modal-title" id="myModalLabel">
  <?php echo $cluster;?> has errors!</h4>
  </div>
  <div class="modal-body">
    <div class="panel panel-primary">
      <div class="panel-heading">
        <h3 class="panel-title" id="clustererrortable">
          <i class="fa fa-long-arrow-right">
            <?php echo $cluster;?> error table
          </i>
        </h3>
      </div>
      <div class="panel-body">
        <div class="table-responsive">
          <table class="table table-striped table-bordered table-hover" id="cluster_error_table">
            <thead>
              <tr>
                <th>Occured <i class="fa fa-sort"></i></th>
                <th>Object <i class="fa fa-sort"></i></th>
                <th>Type <i class="fa fa-sort"></i></th>
                <th>Error <i class="fa fa-sort"></i></th>
                <th>Resolution Notes <i class="fa fa-sort"></i></th>
                <th>Resolved <i class="fa fa-sort"></i></th>
              </tr>
            </thead>
            <tbody>
              <?php                 
             $sql = "<sql query>";
                        $stmt = sqlsrv_query( $conn, $sql );
                        if( $stmt === false) {
                            die( print_r( sqlsrv_errors(), true) );
                        }

                        while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
                        echo'<tr>
                            <td>'.$row['DATE_OCCURED'].'</td>
                            <td>'.$row['OBJECT_NAME'].'</td>    
                            <td>'.$row['ERROR_TYPE'].'</td>
                            <td>'.$row['ERROR'].'</td>      
                            <td>'.$row['RESOLUTION_NOTES'].'</td>';
                            echo'
                <td>';
                   if ( $row['RESOLVED'] == 'False') {
                   echo '<a href="./cluster_resolve_error.php?object='.$cluster.'" class="btn-sm btn-warning" style="margin-left: 5px;"><i class="fa fa-thumbs-o-down"></i> Not Resolved</a>';
                   } else {
                   echo '<a href="#" class="btn-sm btn-success" style="margin-left: 5px;"><i class="fa fa-thumbs-o-up"></i> Resolved</a>';
                   }
                   echo'
                </td>
                </tr>';
                    }
                    ?>

        </tbody>
      </table>
    </div>
    <!-- /.table-responsive -->
  </div>
</div>  

cluster_errors.php模式从前面的按钮单击并查询数据库中的$cluster变量。结果显示在模型中的另一个datatable中。创建按钮以清除每个错误。清除按钮向cluster_resolve_error.php脚本伸出。

cluster_resolve_error.php (清除错误的脚本):

代码语言:javascript
运行
复制
<?php 
if ( !empty($_GET['object'])) {
    $object = $_GET['object'];

} 

$sql = "<SQL QUERY>";
                    $stmt = sqlsrv_query( $conn, $sql );
                    if( $stmt === false) {
                        die( print_r( sqlsrv_errors(), true) );
                    }
        $object = NULL;

        $url = parse_url($_SERVER['HTTP_REFERER']);
        $trimmedHeader = $url['scheme'] . '://' . $url['host'] . $url['path'];
        header('Location: ' . $trimmedHeader . '#' . $tab);

?>

当前,如果单击清除按钮,则更新数据库,然后通过header('Location:将其转发回主页。但这会迫使用户单击主页上的按钮重新打开模式,以清除更多错误。

如何在单击清除按钮并转发相同变量后刷新或重新加载内容?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-29 20:47:35

当用户单击<a href="./cluster_resolve_error.php">链接时,可以使用Ajax向服务器发送请求,然后使用DataTables API方法cell().data()更新“已解析”列行。

例如:

代码语言:javascript
运行
复制
$('#cluster_error_table').on('click', '.btn-warning', function(e){       
   var cell = $(this).closest('td');

   $.get($(this).attr('href'), function(){
      // Update "Resolved" column
      $('#cluster_error_table').DataTable().cell(cell).data(
         '<a href="#" class="btn-sm btn-success" style="margin-left: 5px;"><i class="fa fa-thumbs-o-up"></i> Resolved</a>'
      );
   });

   e.preventDefault();
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32852240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档