我试图通过触发$_SESSION['state']
事件在用户点击锚标记时更新onclick
。变量$state_names_array
作为特定国家/地区的所有州名称。但问题是无论我点击哪个锚标记,$_SESSION['state']
总是被$ state_names_array的最后一个元素更新。
<?php
foreach($state_names_array as $value){
$temp = '<?php $_SESSION["state"]=$value;?>';
?>
<a href="index.php" onclick="document.write('<?php $_SESSION['state'] = $value ?>')"><?php echo $value ?></a><br>
<?php
}
?>
答案 0 :(得分:0)
我不会编写整个代码,我只会向您展示一个示例,如何执行此操作:
<?php
foreach ($state_names_array as $value) {
echo '<a href="index.php" onclick="change_value('.$value.');">'.$value.'</a><br>';
}
?>
然后你将拥有javascript函数change_value
:
在这里,您将向某个PHP文件发送ajax调用,您将在其中处理$_SESSION["state"]=$value;
另外你没有说,点击锚点后你想要什么,因为只有在刷新你的网站后你才能访问新的$_SESSION["state"]
...
也许你只想在点击一些锚之后重定向到index.php,这对你来说已经足够了,那么只需使用value作为$ _GET参数,f.e。:
<?php
foreach ($state_names_array as $value) {
echo '<a href="index.php?new_value='.$value.'">'.$value.'</a><br>';
}
?>
并在这行中添加index.php文件:
if (isset($_GET['new_value'])) {
$_SESSION["state"] = $_GET['new_value'];
}