JSON数组值,附加到URL并刷新

时间:2018-08-06 18:15:22

标签: javascript jquery html json

我正在尝试执行一种形式的URL循环,但我不想给定URL,而是希望将JSON对象中的值附加到url并对其进行循环。

我的主要想法可行,但这并不完全正确。现在,指向相关页面的链接带有“显示”值,因此示例如下:

showdisplay.php?display=3

这将运行一个查询,以获取分配给显示3的所有页面的所有页面信息,并且可行。

我想要的是,一旦查询返回我的结果,然后对结果进行JSON编码,就循环遍历JSON对象,将URL中第一个元素的pageID附加到duration之后的元素(以秒为单位)刷新页面,然后再次执行相同的操作。继续循环执行此操作,并返回到对象末尾的第一个元素。

因此指定了此JSON对象:

[{"pageID":"104",
    "display_id":"3",
    "duration":"56",
    "page_id":"104",
},
{"pageID":"116",
    "display_id":"3",
    "duration":"54",
    "page_id":"116",
}]

点击链接```链接到页面:

  1. 在立即加载页面时,URL为showdisplay.php?display=3&pageID=104
  2. 56秒后(JSON中为“ duration”),刷新页面并将URL设置为showdisplay.php?display=3&pageID=116
  3. 54秒后,再次刷新回到pageID 104

基本上,当跟随该链接时,该URL永远不应仅说showdisplay.php?display=3,而应始终具有从JSON分配给它的pageID

我的脚本:

<script type="text/javascript">
let obj = <?php echo $showDisplays; ?>;

let params = new URL(document.location).searchParams;
params.set("pageID", obj[0].pageID);
params.set("display", obj[0].display_id);
let url = window.location.href.split('?')[0];
let nextURL = url + "?" + params.toString();
window.setTimeout(function () {
    window.location.href = nextURL;
}, obj.duration * 1000);

obj.forEach(function(o){console.log(o)})
</script>

我已经坚持了好几天,不知道我在做什么错或如何正确循环。我觉得应该不太难,但是我不是天生的JS编码器,我完全陷入困境。谁能帮我纠正这个问题并正确循环吗?

0 个答案:

没有答案