0

我在一个页面上有几个链接,所有这些链接都需要在 PHP 中执行不同的方法。“创建文件”链接,“重命名文件”链接和“删除文件”链接。

我知道使用每个超链接执行 PHP 代码的唯一方法是将不同 PHP 文件的 URL 提供给每个超链接。

有没有办法将 URL (HREF) 链接到 PHP 文件中的特定方法?以下是几行不起作用的代码,但可能会帮助您理解我想要实现的目标:

<a href="fileManagement.php::createFile()">Create File</a>
<a href="fileManagement.php::renameFile()">Rename File</a>
<a href="fileManagement.php::deleteFile()">Rename File</a>

我也很确定我采用了错误的方法,但我是一个 PHP 新手,无法更好地了解 :)

4

4 回答 4

3

在您的情况下,常用方法是设置一个名为 fileAction 之类的 GET 参数,然后切换它的值,因此您的链接将如下所示:

<a href="fileManagement.php?fileAction=create">Create File</a>
<a href="fileManagement.php?fileAction=rename">Rename File</a>
<a href="fileManagement.php?fileAction=delete">Delete File</a>

你的 filemanagement.php 逻辑看起来有点像这样:

<?php 
$fileAction = $_GET['fileAction'];
switch ($fileAction) {
    case 'create':
        createFile();
        break;
    case 'rename':
        renameFile();
        break;
    case 'delete':
        deleteFile();
        break;
    default:
        //your default logic here
        break;
}
?>
于 2012-12-02T14:38:43.097 回答
1

您可以将方法名称作为 $_GET 值发送并执行相应的函数,如下所示:

HTML:

 <a href="functions.php?method=someMethod">Run some method</a>

PHP:

 <?php
 if (isset($_GET['method'])) {
 $method = $_GET['method'];
 $method();
 }
于 2012-12-02T14:22:36.633 回答
0
<?php 
    @$Method = $_GET['Method'];
    if (!(isset($Method)))
    {
        $Method = "0"; // If URL does not contain ?Method=1 Then Assign It To 0 
    }
    if ($Method > "3")
    {
        $Method = "0";
        // If ?Method= value is higher than 3 Then Set it to 0 
    }
    if ($Method == "0")
    {
        echo "<a href=\"fileManagement.php?Method=1\">Create File</a>";
        echo "<a href=\"fileManagement.php?Method=2\">Rename File</a>";
        echo "<a href=\"fileManagement.php?Method=3\">Delete File</a>";
    }
    elseif ($Method == "1")
    {
        // Method = 1 Is Create File So:
        // CreateFile();
    }
    elseif ($Method == "2")
    {
        // Method 2 is Rename File 
        // renameFile();

    }
    elseif ($Method == "3")
    {
        // Method 3 Is Delete File
        // deleteFile();
    }


?>
于 2012-12-02T14:29:08.140 回答
0

您所描述的是使用 MVC 框架的完美场景。那里有很多这样的框架,它们可以帮助您更好地组织代码。如果您刚开始使用 PHP,我强烈建议您查看 Web 上的框架和一些代码示例,以了解 MVC 原理。

使用 MVC 框架时,您只需定义映射到特定类(控制器)中特定功能(操作)的路由。我不会在这个答案中走得太远,但我建议您通过这些资源来帮助您入门:

于 2012-12-03T20:36:30.167 回答