例如,如果您点击“展示广告3”,则现在的网址为http://local.CMSTest.com/showDisplay.php?display=3
并调用使用3作为显示ID的函数,该函数将抓取具有该显示ID的所有页面。这可以工作,但是在我的html中将foreach
放在其中的位置,它将与该显示相关的两个页面都加载到了一个被塞满的页面中。所以我知道它正在工作,但是我也相信我也需要将这些页面存储到javascript数组中。
我在想可能有一种方法可以将默认情况下的第一页加载到该页上,并将其附加到http://local.CMSTest.com/showDisplay.php?display=3&page_id = 2
之类的url上,然后在时间到后可以转到下一个并更改网址http://local.CMSTest.com/showDisplay.php?display=3&page_id = 3
因此,PHP和HTML目前正在工作:
<div class="row top">
<?php include 'banner.php'?>
</div>
<div class="row middle" style="background-image: url(<?php echo $showDisplays['background_img']?>);">
<div class="col-lg-12">
<?if($showDisplays['panel_type_id'] == 1){?>
<div class="fullContent" style=" height: 100%; ">
<?php echo $showDisplays['content']?>
</div>
<?}?>
</div>
</div>
<div class="row bottom">
<?php include 'ticker.php';?>
</div>
<?php }?>
我想尝试一些类似的javascript,它将从数组中获取每个页面,将以下URL替换为我先前数组中的页面ID。如何正确执行此操作?
<script type="text/javascript">
var Dash = {
nextIndex: 0,
dashboards: [
{url: "http://www.google.com", time: 5},
{url: "http://www.yahoo.com", time: 10},
{url: "http://www.stackoverflow.com", time: 15}
],
display: function()
{
var dashboard = Dash.dashboards[Dash.nextIndex];
frames["displayArea"].location.href = dashboard.url;
Dash.nextIndex = (Dash.nextIndex + 1) % Dash.dashboards.length;
setTimeout(Dash.display, dashboard.time * 1000);
}
};
window.onload = Dash.display;
</script>
更新:
当前数组
Array ( [pageID] => 104 [page_type_id] => 1 [display_id] => 3 [slide_order] => [active] => 1 [background_img] => [panel_id] => 96 [panel_type_id] => 1 [page_id] => 104 [cont_id] => 148 [contID] => 148 [content] =>This is full content)
答案 0 :(得分:1)
您需要
frames.displayArea.location.href
的查询参数。Dash.nextIndex
,要么(params.page_id + 1) % Dash.dashboards.length
,因为page_id是当前正在显示的页面,我们要下一页...或者0
,如果params.page_id
是{{1} }。undefined
附加dashboard.url
和display_id
参数来构建URL。为了整洁,我建议创建一个名为page_id
的变量,因为我们需要构建自定义字符串。
newURL
答案 1 :(得分:1)
首先,您需要从javascript访问php数组,然后可以使用php的json_encode
来将其转换为JSON对象。
然后,您可以使用URL search params更改下一个可以调用的URL的查询参数。参见下面的示例
function setDisplay() {
let params = new URL(document.location).searchParams;
let pageID = params.get("pageID");
let disply = params.get("display");
// set the html based on pageID and display
}
function getNextURL() {
// encode your php array to json
// let obj = <?php echo json_encode($myArray); ?>;
// probably what obj will look like after above line
// this is just for this example, you should use the line commented out above
var obj = {
"pageID": 104,
"page_type_id": 1,
"display_id": 3,
}
let params = new URL(document.location).searchParams;
params.set("pageID", obj.pageID);
params.set("display", obj.display_id);
let url = window.location.href.split('?')[0];
let nextURL = url + "?" + params.toString();
console.log(nextURL);
return nextURL
}
getNextURL();