【问题标题】:PHP on link click effectsPHP关于链接点击效果
【发布时间】:2011-09-28 23:17:53
【问题描述】:
我有一个问题是有点两部分的(虽然部分是齐头并进的)。我已经开始学习 PHP,我想在点击图片时做两件事。
我想要点击
- 增加一个会话变量,比如
$_SESSION['entry']。
- 重新加载当前页面(比如
index.php)。
我该怎么办?
需要明确的是,我并不是要求有人为我编写代码,我只是想指出正确的方向,因为我不太确定最好的方法是什么。
【问题讨论】:
标签:
php
html
session
variables
hyperlink
【解决方案1】:
如果href 指向同一页面,则锚链接会“重新加载”页面。因此,您需要做的就是告诉 PHP 您想要增加会话变量。您可以使用 GET 变量来执行此操作:
<a href="index.php?increment=true">Increment the counter</a>
然后在你的index.php:
if (isset($_GET['increment']) && $_GET['increment'] == 'true') {
$_SESSION['counter']++;
}
这假设您已经在某个时候初始化了会话变量counter。不熟悉的可以查看精彩的PHP docs来解释上面用到的函数。
【解决方案2】:
这样做的方法是将图像链接到“自身”$_SERVER['PHP_SELF'] 或者只是链接到 /index.php,并检查会话以查看是否设置了该值,如果设置了,则增加它。
<?php
session_start();
if (isset($_SESSION['entry'])) {
$_SESSION['entry']++;
} else {
$_SESSION['entry'] = 1;
}
// if entry is greater than some value in your DB, then set it back to 1
【解决方案3】:
<a href="?incr=1"><img src=.../></a>
<?php if($_GET['incr']) $_SESSION['entry']++; ?>
这应该会给你这个想法。
【解决方案4】:
您可以对增加 $_SESSION['entry'] 的 PHP 脚本进行 AJAX 调用。
【解决方案5】:
- 使用带有链接的图片加载页面:例如“?imageClick=1”
- 点击图片后页面会自动加载
- 如果
$_GET[ 'imageClick' ] 等于1,则增加会话变量
- 重定向到没有
imageClick 变量的同一页面
如果您担心index.php?imageClick=1 可能会被浏览器记录在其历史记录中,因此无需实际点击图片即可用于重新加载:
- 使用具有 POST 方法和图像类型输入元素的表单加载页面,名为 imageClick(充当提交按钮),值为 1
- 点击图片按钮,表单提交到同一页面
- 如果设置了
$_POST[ 'imageClick_x' ] 或`$_POST[ 'imageClick_y' ] 并增加会话变量
- 重定向到同一页面