在每个页面显示调用javascript函数。 (php获取变量)

时间:2013-10-01 03:44:17

标签: javascript php jquery html jquery-mobile

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

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

当我浏览我的应用并加载相同的页面但在网址字符串var reqid = "<?= $_GET['id']; ?>";中使用不同的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按预期更改,导航回到网址中具有不同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); 

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

0 个答案:

没有答案