HREF调用PHP函数并传递变量?

时间:2013-07-09 04:57:13

标签: php html

是否可以创建一个调用PHP函数并随其传递变量的HREF链接?

<?php
function sample(){
    foreach ($json_output->object ){
        $name = "{$object->title}";
        $id = "{$object->id}";

        print "<a href='search($id)' >$name</a>";
    }
}

function search($id){
    //run a search via the id provide by the clicking of that particular name link
}
?>

8 个答案:

答案 0 :(得分:11)

您可以在不使用框架的情况下轻松完成此操作。默认情况下,任何后来的?在URL中是一个GET变量。

例如,www.google.com/search.html?term = blah

会访问www.google.com/search.html,并将GET变量“term”传递给值“blah”。

可以使用&amp;

分隔多个变量

例如,www.google.com/search.html?term = blah&amp; term2 = cool

GET方法独立于PHP,是HTTP规范的一部分。

PHP通过自动创建超全局变量$ _GET []轻松处理GET请求,其中每个数组索引都是GET变量名,数组索引的值是变量的值。

以下是一些演示代码,用于说明其工作原理:

<?php
    //check if the get variable exists
    if (isset($_GET['search']))
    {
        search($_GET['search']);
    }

    function Search($res)
    {
        //real search code goes here
        echo $res;
    }


?>

<a href="?search=15">Search</a>

将打印15,因为它是搜索的值,我的搜索虚拟函数只打印出任何结果

答案 1 :(得分:2)

HTML输出需要看起来像

<a href="php_file.php?id=1">anchor text</a>

您的功能需要以该格式输出此信息。

答案 2 :(得分:2)

不,你不能直接这样做。您只能链接到网址。

在这种情况下,您可以在查询字符串中传递函数名称和参数,然后在PHP中处理它,如下所示:

  print "<a href='yourphpscript.php?fn=search&id=$id' >$name</a>";

并且,在PHP代码中:

  if ($_GET['fn'] == "search")
     if (!empty($_GET['id']))
            search($id);

确保您清理GET参数。

答案 3 :(得分:1)

不,至少不是直接。

  1. 您可以链接到网址
  2. 您可以在该网址的查询字符串中包含数据(<a href="myProgram.php?foo=bar">
  3. 该URL可以由PHP程序处理
  4. PHP程序可以将函数称为唯一的函数
  5. 您可以将数据从$_GET['foo']传递到该功能

答案 4 :(得分:1)

是的,你可以做到。例如:

从您的观点来看:

    <p><a href="test/1" class="btn blue">Edit</a>

其中1是您要发送的参数。它也可以是从对象中获取的数据。

来自您的控制器:

function test($id){
  #code...
}

答案 5 :(得分:0)

只需这样做

<?php
function sample(){
    foreach ($json_output->object ){
        $name = "{$object->title}";
        $id = "{$object->id}";

        print "<a href='?search=" . $id . "' > " . $name . "</a>";
    }
}

if (isset($_REQUEST['search'])) {
    search($_REQUEST['search']);
}

function search($id){
    //run a search via the id provide by the clicking of that particular name link
}
?>

还要确保$json_output功能可以访问sample()。你可以这样做

<?php
function sample(){
    global $json_output;
    // rest of the code
}
?>

<?php
function sample($json_output){
    // rest of the code
} 
?>

答案 6 :(得分:0)

使用值在链接的href中设置查询字符串,并使用$_GET$_REQUEST

进行访问
<?php
    if ( isset($_REQUEST['search']) ) {
        search( $_REQUEST['search'] );
    }

    function Search($res) {
        // search here
    }

    echo "<a href='?search='" . $id . "'>" . $name . "</a>";
?>

答案 7 :(得分:-1)

是的,这是可能的,但您需要一个MVC类型结构,并且还会启用.htaccess URL重写。

这里有一些阅读材料可以让您开始了解MVC的全部内容。

http://www.phpro.org/tutorials/Model-View-Controller-MVC.html

如果你想选择一个甜蜜的框架,而不是重新发明MVC轮,我强烈建议,LARAVEL 4