【问题标题】:How to update progress bar using checkboxes on different page如何使用不同页面上的复选框更新进度条
【发布时间】:2017-08-16 05:34:13
【问题描述】:

我想使用复选框更新进度条值。这个想法是不同页面上的复选框和进度条。当我选中第 1 页上的复选框时,它将更新另一页上的进度条值。我真的被困住了。尝试了所有可能的事情。帮帮我!!!

这是我的代码:

审阅-order.html

    <div class="progress">
         <p><progress id="avancement" value="0" max="100"></progress></p>
            <span class="sr-only"></span>
       </div>

   <script type="text/javascript">
   $(function() {
    $('.progressbar_chkbox').click(function() {
        var progress = sessionStorage.getItem("progress");
       $('#avancement').val(progress);
      });

    });

    </script>

Notification.php

    <div class="c-content-panel">
         <?php
           $result = mysqli_query($conn,$sql);
             while($row = mysqli_fetch_array($result,MYSQLI_BOTH))   
             {
          ?>
         <div class="c-body">
          <div class="alert alert-success alert-dismissible" role="alert"> This issue has been reported by <?php echo $row['your_name']; ?> from  <?php echo $row['store_name']; ?>
             <p> <?php echo $row['issue_title']; ?></p>
             <p><?php echo $row['file'] ?></p>
             <p><a href="uploads/<?php echo $row['file'] ?>" target="_blank">View File </a></p>
             <a class="c-font-slim" href="#">read this important alert message</a>.
             <button type="button" class="close" data-dismiss="alert" aria-label="Close">
             <span aria-hidden="true">&times;</span>
                                    </button>
                                </div> 
          <div class="c-content-panel">

            <div class="c-body">
              <div class="row">
                <div class="col-md-12">
                   <div class="panel panel-default">
                      <div class="panel-body"> 
                         <div class="form-group">
                           <label class="col-md-4 control-label">Action</label>
                              <form action="track.php" method="post">
                                <div class="col-md-6">
                                 <label class="checkbox-inline">
                                  <input type="checkbox" class="progressbar_chkbox"  type="checkbox" id="pending" onclick="send();" data-progress="20" value="pending">Pending </label>
                                   <label class="checkbox-inline">
                                   <input type="checkbox" id="inlineCheckbox2" class="progressbar_chkbox" id="read" type="checkbox" onclick="send();" data-progress="40" value="option2" value="read"> Read</label>
                                    <label class="checkbox-inline">
                                    <input type="checkbox" id="inlineCheckbox3" class="progressbar_chkbox" id="completed" type="checkbox" onclick="send();" data-progress="80" value="option3" name="completed"> Completed </label>
                                     <button type="button" class="btn btn-theme c-btn-square" onclick="send();">
                                        Submit</button>
                         </div>
                       </form> 
                     </div>
                   </div>
                  </div>
            </div>
 </div>

   </div>
   </div>
   </div>

 <?php } ?>
<script type="text/javascript">

            $(function() {

          $('.progressbar_chkbox').click(function() {

            var progress = $(this).data('progress');

            sessionStorage.setItem("progress", progress)

          });

        });
        </script>

【问题讨论】:

  • 可能使用websockets,或sse's
  • @mplungjan:两个页面来自同一个来源。但还是不行

标签: javascript php html


【解决方案1】:

我看到您正在使用 sessionStorage。您需要使用本地存储。如果页面来自同一来源,那应该可以工作 - 但是您在其他页面上没有 $('.progressbar_chkbox') ,因此您需要使用 setInterval 检查存储

这是一个fiddle,因为 SO 不允许 sessionStorage/localStorage

var tId;
$(function() {
  tId = setInterval(function() {
    var progress = localStorage.getItem("progress");
    $('#avancement').val(progress);
  },1000);
});

看看

http://plungjan.name/SO/progress/page1.html
http://plungjan.name/SO/progress/page2.html

【讨论】:

  • 不,两个答案都不起作用。进度条仍然是空白 - 从 Notification.php 中单击按钮是否有任何问题?
  • 请看更新的小提琴。如果页面位于同一来源,那么它应该可以工作
  • 刚刚检查了小提琴。奇怪的是它正在使用小提琴而不是在 localhost
  • 已修复。你需要本地存储。会话存储仅用于一页 - 请参阅更新
  • 还将onclick="send();" 移动到点击处理程序
猜你喜欢
  • 1970-01-01
  • 2016-05-20
  • 1970-01-01
  • 2014-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-19
相关资源
最近更新 更多