我的网站标题中有这个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);
怀疑这是实现我的目标的正确方法,将在睡眠后进一步测试并更新结果。