2011-09-28 128 views
0

我有一个问题,有点两部分(虽然各部分齐头并进)。我已经开始汲取PHP,并且我想在点击图像时做两件事。PHP上的链接点击效果

我想点击

  1. 增量会话变量,说$_SESSION['entry']
  2. 重新载入当前页面(比如index.php)。

我应该怎么办?要清楚的是,我并不是要求某人为我编码,我只是希望指出正确的方向,因为我不太确定最好的方法是什么。

回答

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以解释上面使用的功能。

+0

非常有帮助,谢谢(并为您的编辑澄清我的问题)。 –

0
<a href="?incr=1"><img src=.../></a> 
<?php if($_GET['incr']) $_SESSION['entry']++; ?> 

这应该给你的想法。

1

要做到这一点的方法是将图像链接到“本身”$_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 
+0

+1哦,我喜欢那样。 – Herbert

0
  • 加载页面:“imageClick = 1”,例如
  • 在图像点击页面为此自动加载
  • 如果$_GET[ 'imageClick' ]等于1增量会话可变
  • 重定向到同一个页面,而不imageClick变量

如果您担心index.php?imageClick=1可以通过浏览器在它的历史,并为此可以使用没有实际图像点击重新加载记住:

  • 加载页面与具有POST方法的表单和输入元素类型的图像,命名为imageClick(作为一个提交按钮)值为1
  • 在图像按钮点击的形式提交到同一页面
  • 如果$_POST[ 'imageClick_x' ]`$_POST[ 'imageClick_y' ]设置,并增加了会话变量
  • 重定向到相同页面
0

您可以对增加$ _SESSION ['entry']的PHP脚本执行AJAX调用。