簡體   English   中英

HREF調用PHP函數並傳遞變量?

[英]HREF to call a PHP function and pass a variable?

是否可以創建一個調用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
}
?>

無需使用框架即可輕松完成此操作。 默認情況下,任何后來的? 在URL中是一個GET變量。

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

將轉到www.google.com/search.html,並將傳遞GET變量“term”,其值為“blah”。

多個變量可以用&分隔

例如,www.google.com/search.html?term = blah&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,因為它是搜索的價值,我的搜索虛擬功能只打印出它獲得的任何結果

HTML輸出需要看起來像

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

您的函數需要以該格式輸出此信息。

不,你不能直接這樣做。 您只能鏈接到網址。

在這種情況下,您可以在查詢字符串中傳遞函數名稱和參數,然后在PHP中處理它,如下所示:

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

並且,在PHP代碼中:

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

確保您清理GET參數。

不,至少不是直接的。

  1. 您可以鏈接到URL
  2. 您可以在該URL的查詢字符串中包含數據( <a href="myProgram.php?foo=bar">
  3. 該URL可以由PHP程序處理
  4. PHP程序可以將函數作為唯一的函數來調用
  5. 您可以將$_GET['foo']數據傳遞給該函數

是的,你可以做到。 例:

從您的角度來看:

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

其中1是您要發送的參數。 它也可以是從對象獲取的數據。

從您的控制器:

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

只需這樣做

<?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
}
?>

還要確保可以使用sample()函數訪問$json_output
你可以這樣做

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

要么

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

使用值在鏈接的href設置查詢字符串,並使用$_GET$_REQUEST訪問它

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

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

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

是的,這是可能的,但是您需要一個MVC類型結構,並且還啟用了.htaccess URL重寫。

這里有一些閱讀材料可以讓您開始了解MVC的全部內容。

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

如果你想選擇一個甜蜜的框架,而不是重新發明MVC輪,我強烈建議, LARAVEL 4

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM