Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
387 views
in Technique[技术] by (71.8m points)

javascript - 刷新页面后如何保持同一选项卡打开(how to keep the same tab open after refreshing the page)

I'm a beginner in jquery and bootstrap, so forgive my mistakes.

(我是jquery和bootstrap的初学者,所以请原谅我的错误。)

I have created 3 tabs with bootstrap for the user profile settings page.

(我为用户个人资料设置页面创建了3个带有引导程序的选项卡。)

I have three tabs Profile, Security, Account.

(我有三个选项卡配置文件,安全性,帐户。)

On each tab, there is a form with some inputs.

(在每个选项卡上,都有一个带有一些输入的表单。)

The problem is In the second security tab.

(问题出在第二个安全选项卡中。)

the user can update their passwords, so I used the PHP header function to reset the form.

(用户可以更新其密码,因此我使用了PHP标头功能来重置表单。)

but when I reload the page, the page redirects to the profile tab, not the security tab.

(但是当我重新加载页面时,页面重定向到配置文件选项卡,而不是安全性选项卡。)

I have checked some already asked questions here.

(我已经在这里检查了一些已经问过的问题。)

but sad;y none of them worked for me.

(但可悲的是,他们没人为我工作。)

Javascript Code:

(JavaScript代码:)

var url = document.location.toString();
if (url.match('#')) {
    $('.setting-tabs a[href="#' + url.split('#')[1] + '"]').show('tab');
} 

$('.setting-tabs a').on('click', function (e) {
    window.location.hash = e.target.hash;
})

Also, have tried this:

(另外,尝试过这个:)

$('#settingsTab a').click(function(e) {
  e.preventDefault();
  $(this).tab('show');
});

$("div.setting-tabs > a").on("shown.bs.tab", function(e) {
  var id = $(e.target).attr("href").substr(1);
  window.location.hash = id;
});

var hash = window.location.hash;
$('#settingsTab a[href="' + hash + '"]').tab('show');

Here is my edit_account.php

(这是我的edit_account.php)

<div id="settingsTab" class="list-group setting-tabs">
  <a href="edit_account.php#profile" class="list-group-item active" data-target="#profile" data-toggle="tab"><span aria-hidden="true">Profile</span></a>
  <a href="edit_account.php#security" class="list-group-item" data-target="#security" data-toggle="tab"><span aria-hidden="true">Security</span></a>
  <a href="edit_account.php#account" class="list-group-item" data-target="#account" data-toggle="tab"><span aria-hidden="true">Account</span></a>
  <div class="mb-4"></div>  
</div>

            <div id="profile" class="tab-pane fade active show">
              <h3 style="font-weight: 400;">Need to update your profile?</h3>
              <hr class="mb-4"> 
              <form action="" method="post" autocomplete="off">
                <div class="row mb-3">
                  <div class="col-lg-3">
                    <div class="form-group">
                      <label class="label-profile">EMAIL</label>
                    </div>
                  </div>    
                  <div class="col-lg-6">
                    <div class="form-group">
                      <?php 

                        $user_id = $_SESSION['userId'];

                        $sql = "SELECT * FROM users WHERE user_id = ?";
                        $stmt = mysqli_stmt_init($connection);
                        if (!mysqli_stmt_prepare($stmt, $sql)) {
                          echo "Query Failed";

                        } else {

                          mysqli_stmt_bind_param($stmt, "i", $user_id);
                          mysqli_stmt_execute($stmt);
                          $result = mysqli_stmt_get_result($stmt);

                          while ($row = mysqli_fetch_array($result)) {

                            $usermail = $row['email'];

                            echo "<input class='form-control' name='email' value='{$usermail}' type='email'>";

                          }
                        }

                       ?>
                    </div>
                  </div> 
                  <div class="col-lg-3">
                    <div class="form-group">
                      <input type="submit" name="email-update" value="Update" class="btn btn-outline-primary float-right">
                    </div>
                  </div>
              </form>                                                    
                </div>  
                <div class="row mb-3">
                  <div class="col-lg-3">
                    <div class="form-group">
                      <label class="label-profile">PHONE</label>
                    </div>
                  </div>    
                  <div class="col-lg-6">
                    <div class="form-group">
                      <p>Your phone is verified with Bitcoinerrs. Click Edit to change your phone number</p>
                    </div>
                  </div> 
                  <div class="col-lg-3">
                    <div class="form-group">
                      <a href="phone_verify" class="btn btn-outline-primary float-right">Edit</a>
                    </div>
                  </div>                                  
                </div>      
                <div class="row">
                  <div class="col-lg-3">
                    <div class="form-group">
                      <label class="label-profile">IDENTITY</label>
                    </div>
                  </div>    
                  <div class="col-lg-6">
                    <div class="form-group">
                      <p>Your identity is not verified. Click Verify to verify your identity</p>
                    </div>
                  </div> 
                  <div class="col-lg-3">
                    <div class="form-group">
                      <a href="identity_verify" class="btn btn-outline-primary float-right">Verify</a>
                    </div>
                  </div>                                  
                </div>                                     
            </div>
            <div id="security" class="tab-pane fade">
              <h3 style="font-weight: 400;">CHANGE PASSWORD</h3>
              <hr class="mb-4">              
              <form action="" method="post" autocomplete="off">
                <?php 

                  if (isset($_POST['update-pass'])) {

                    $currentPass = escape($_POST['currentPass']);
                    $passwordNew = escape($_POST['passwordNew']);
                    $passwordRepeat = escape($_POST['passwordRepeat']);

                    if (empty($currentPass) || empty($passwordNew) || empty($passwordRepeat)) {

                    header("Location: edit_account.php?error=emptyfields");
                    exit(); 

                    } elseif (strlen($passwordNew) <= '8') {

                    header("Location: edit_account.php?error=passwordcheck");
                    exit();

                    } elseif ($passwordNew !== $passwordRepeat) {

                    header("Location: edit_account.php?error=passwordverify");
                    exit();

                    } else {

                      $sql = "SELECT password FROM users WHERE user_id = ?";
                      $stmt = mysqli_stmt_init($connection);
                      if (!mysqli_stmt_prepare($stmt, $sql)) {            
                      header("Location: edit_account.php?error=sqlerror");
                      exit();

                      } else {

                        mysqli_stmt_bind_param($stmt, "i", $user_id);
                        mysqli_stmt_execute($stmt);
                        mysqli_stmt_store_result($stmt);
                        $resultCheck = mysqli_stmt_num_rows($stmt);
                        if (!$resultCheck > 0) {
                            header("Location: edit_account.php?error=invalidpass");
                            exit();

                        } else {

                          $sql = "UPDATE users SET password = ? WHERE user_id = ?";
                          $stmt = mysqli_stmt_init($connection);
                          if (!mysqli_stmt_prepare($stmt, $sql)) {            
                          header("Location: edit_account.php?error=sqlerror2");
                          exit();

                        } else {

                          $hashed_password = password_hash($passwordNew, PASSWORD_DEFAULT);

                          mysqli_stmt_bind_param($stmt, "si", $hashed_password, $user_id);
                          mysqli_stmt_execute($stmt);
                          header("Location: edit_account.php?passupdate=success");
                          exit();

                        }
                      }
                    }                    
                  }
mysqli_stmt_close($stmt);
mysqli_close($connection);                   
                }
                 ?>
                <div class="row mb-3">
                  <div class="col-lg-4">
                    <div class="form-group">
                      <label class="label-profile">Current Password</label>
                    </div>
                  </div>    
                  <div class="col-lg-8">
                    <div class="form-group">
                      <input class="form-control" name="currentPass" type="password">
                    </div>
                  </div>                                  
                </div>  
                <div class="row mb-3">
                  <div class="col-lg-4">
                    <div class="form-group">
                      <label class="label-profile">New Password</label>
                    </div>
                  </div>    
                  <div class="col-lg-8">
                    <div class="form-group">
                      <input class="form-control" name="passwordNew" type="password">
                    </div>
                  </div>                                  
                </div>      
                <div class="row">
                  <div class="col-lg-4">
                    <div class="form-group">
                      <label class="label-profile">Confirm Password</label>
                    </div>
                  </div>    
                  <div class="col-lg-8">
                    <div class="form-group">
                      <input class="form-control" name="passwordRepeat" type="password">
                      <p class="mt-3">8 characters or longer. Combine upper and lowercase letters and numbers.</p>
                    </div>
                  </div>                                 
                </div>
                <div class="form-group mb-5">
                  <input type="submit" name="update-pass" value="Save Changes" class="btn btn-primary float-right">
                </div>                         
              </form>  
              <hr class="my-5">  
              <div class="row">
                <div class="col-lg-4">
                  <div class="form-group">
                    <label class="label-profile">TWO FACTOR AUTHEN

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
等待大神答复

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...