1

我的网站标题中有这个 JavaScript 函数。在第一页加载时,一切都按预期工作,我得到响应 onsuccess 被触发并更新指定的 div 标签。

var reqid = "<?= $_GET['id']; ?>"; 用来获取页面的ID。

当我浏览我的应用程序并加载相同的页面但 url 字符串中具有不同的 id 时,var reqid = "<?= $_GET['id']; ?>"; 不会更新并恢复为以前的值。每次显示页面时如何更新它?

            var request = function() {
             function onSuccess(data, status)
        {
         $("#notif").fadeIn(2000);
            data = $.trim(data);
            if(data == "SUCCESS"){
           $("#notif").html('<div class="notification-box-green">  <img class="notification-icon" src="images/lists/list-tick.png" alt=""> <p class="notification-text">Success!</p></div>').fadeIn(4000);
           $('#notif').fadeOut(4000, function() {
  });
            }  else  if(data == "LIMIT")
            {
            $("#notif").html('<div class="notification-box-yellow"><img class="notification-icon" src="images/lists/list-warning.png" alt=""><p class="notification-text">Please Wait!</p></div>').fadeIn(4000);
           $('#notif').fadeOut(4000, function() {
  });
            }    else  if(data == "NO_WIFI")
            {
            $("#notif").html('<div class="notification-box-yellow"><img class="notification-icon" src="images/lists/list-warning.png" alt=""><p class="notification-text">Connect to hostspot!</p></div>').fadeIn(4000);
           $('#notif').fadeOut(4000, function() {
  });
            }

}
                 var reqid = "<?= $_GET['id']; ?>";
                      $.ajax({
                                        type: "POST",
                                          url: "req_sub.php",
                                      cache: false,
                                                      data: "id="+ reqid,
                                                      success: onSuccess
                                      });

        }

通过单击按钮调用该函数。

编辑

我稍微修改了我的代码并将其放入自己的 js 文件中。

id 现在似乎按预期更新。

一个问题仍然存在,onsuccess 中的代码没有第二次执行。第一次加载或刷新时,div 会按预期更改,导航回 url 中具有不同 id 的页面不会更新 div。

function getUrlVars() {
    var vars = {};
    var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
        vars[key] = value;
    });
    return vars;
}




            var request = function() {
          var reqid = getUrlVars()["id"]; 
             function onSuccess(data, status)
        {

编辑 2

我克隆了 div 并在完成后替换了它。

         var divClone = $("#notif").clone(); 
            var request = function() {
          var reqid = getUrlVars()["id"]; 
             function onSuccess(data, status)
        {


         $("#notif").fadeIn(2000);
            data = $.trim(data);
            if(data == "SUCCESS"){
           $("#notif").html('<div class="notification-box-green">  <img class="notification-icon" src="images/lists/list-tick.png" alt=""> <p 

class="notification-text">Success!</p></div>').fadeIn(4000);
           $('#notif').fadeOut(4000, function() {




$("#notif").replaceWith(divClone); 

怀疑这是实现我目标的正确方法,将在睡眠后进一步测试并更新结果。

4

0 回答 0