我有以下步骤:
fcn1
并href到某个页面p1
的按钮p1
页读取了6个cookie,并显示了resulint 6个字符串上面的效果很好-问题是p1需要刷新才能显示最新的6个字符串。 Cookie很好-我可以在“检查”的“ Cookies”下看到它。我试图将pause(x);
和location.reload()
放在p1
上。
在php构建HTML之前,如何确保cookie是由函数设置的?
一个解决方案可能是制作另一个ajax,更新p1
上的6个字符串,但我不喜欢该解决方案-似乎是一个到多个步骤。
我无法发布所有代码,因为总共有几百行。
以下是调用函数和href的按钮(它在索引为j
的for循环中运行):
echo '<span><li><a onclick="fcn1('.$games_id[$j].')" href="/cc/p1.php" id="'.$games_id[$j]. '" value='.$games_id[$j]. '>' .$games_text[$j]. '</a></li></span>';
下面是在p1中定义文本的方式,该文本似乎在其中加载并“旧有cookie”。
<text x="501" y="289.9721" alignment-baseline="middle" text-anchor="middle" font-family="Verdana" font-size="24"><?php echo $_COOKIE["cat1_str"] ?></text>
谢谢
更新1:
<script>
function fcn1(game) {
var gameid = game;
var date = new Date();
date.setTime(+ date + (30 * 86400000)); // Cookie expires in 30 days
document.cookie = "SelectedGame=" + gameid + "; expires=" + date.toGMTString() + "; path=/";
SetStandardGameCategories();
}
</script>
<script language="javascript">
function SetStandardGameCategories() {
$.ajax({
type: "GET",
url: "/content/SetStandardGameServer.php",
data: {},
success: function(data){
}
});
}
</script>
SetStandardGameServer.php
<?php
ob_start();
require("db.php");
if(isset($_COOKIE['SelectedGame'])) {
SaveStandardCategories($_COOKIE['SelectedGame']);
}
?>
答案 0 :(得分:1)
您应该等待PHP执行,然后重定向。
echo '<span><li><a onclick="fcn1('.$games_id[$j].', \'/cc/p1.php\'); return false;" href="#" id="'.$games_id[$j]. '" value='.$games_id[$j]. '>' .$games_text[$j]. '</a></li></span>';
脚本:
function fcn1(game, redirectURL) {
var gameid = game;
var date = new Date();
date.setTime(+ date + (30 * 86400000)); // Cookie expires in 30 days
document.cookie = "SelectedGame=" + gameid + "; expires=" + date.toGMTString() + "; path=/";
SetStandardGameCategories(redirectURL);
}
function SetStandardGameCategories(redirectURL) {
$.ajax({
type: "GET",
url: "/content/SetStandardGameServer.php",
data: {},
success: function(data){
if (redirectURL) {
window.location.href = redirectURL;
}
}
});
}
请注意,我已经添加了一个新参数。如果要在其他地方使用此功能,并且不想重定向,只需将参数留空。