【问题标题】:PHP on link click effectsPHP关于链接点击效果
【发布时间】:2011-09-28 23:17:53
【问题描述】:

我有一个问题是有点两部分的(虽然部分是齐头并进的)。我已经开始学习 PHP,我想在点击图片时做两件事。

我想要点击

  1. 增加一个会话变量,比如$_SESSION['entry']
  2. 重新加载当前页面(比如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' ] 并增加会话变量
          • 重定向到同一页面

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-04-24
            相关资源
            最近更新 更多