PHP从超链接调用函数

时间:2013-07-04 07:53:59

标签: php

我有一个文件下载网址列表,将显示给用户,用户点击它会触发下载。我使用以下代码:

echo "<a href=$val1 download=\"$fileId.$fileformat\".>Click Here To Download</a>";

但是如何更改它以便调用函数而不是下载,因为我需要在下载之前进行一些处理。我使用了以下但不起作用:

echo "<a href=$val1 onclick=func($val1,$fileId,$fileformat)>Click Here To Download</a>";

还有其他方法从超链接调用函数吗?

我尝试使用if(isset($ _ GET ['id']))方式,但我有一个链接列表,我需要向用户显示,当用户点击一个链接而不是传递给函数来触发下载。

4 个答案:

答案 0 :(得分:2)

你不能直接从html调用php函数。

您的问题的解决方案是调用将运行该函数的php文件并返回文件以供下载

实施例

<a href="download-file.php?val1=$val1&fileId=$fileId&fileFormat=$fileFormat">Click Here To Download</a>

你的donwload-file.php文件检查并验证$ _GET,你将运行返回结果所需的函数。

答案 1 :(得分:0)

试试这个,

echo "<a href='javascript:;' onclick=func('".$val1."','".$fileId."','".$fileformat."')>
   Click Here To Download</a>";

答案 2 :(得分:0)

$("#link_id").click(function() {
//Your code here
});


echo "<a href=$val1 download=\"$fileId.$fileformat\". id='link_id'>Click Here To Download</a>";

答案 3 :(得分:0)

启动php函数“onclick”的唯一方法是使用$ _GET []。

有两种方法可以做到这一点:

  1. 你href一个变量,例如。触发器。

    <a href="?variable=value">click</a>
    <?php
    if(isset($_GET['variable'])) {
       $variable = $_GET['variable'];
    
       /* now you can either directly execute your
          function, create a switch or an if/elseif block */
    
       switch($variable) {
          case "file1":
             function myFunction() {
             /* your function */
             }
          break 1;
       }
    }
    ?>
    
  2. 您创建了一个类(OOP)并将其包含在您的文件中:

    <?php
    $trigger = $_GET['trigger'];
    include "include_path/class_name.php";
    ?>
    
  3. 类:

        <?php
        class ClassName {
    
          function ClassName() {
          global $trigger;
    
            if($trigger == "value1") {
            // your function
            }
    
            if($trigger == "value2") {
            $this->myFunction();
            }
    
            if($trigger == "value3") {
            $otherClassName->myOtherFunction();
            }
    
          }
    
        }
        ?>