从HTML onclick事件访问PHP方法


Access PHP method from HTML onclick event

我试图开发一个网页(menu.php),当点击访问stock-c.php中的许多方法中的"一个"时,它有一个<div>。我开发的代码如下:

menu.php

<?php 
require_once '../control/stock-c.php';
?>
<html>
<body>
    <div onclick="<?php $obj=new StockController(); $obj->checkAccessRights();?>">  //I know this is a wrong implementation
       //some code here
    </div>
</body>
</html>

stock-c.php

class StockController{
    public function checkAccessRights(){
        //some code here
    }
    public function getPID(){
        //some code here
    }
}

我知道menu.php文件的onclick事件是一个错误的实现。

因为会有其他的情况,我将需要调用其他方法(如getPID())在其他PHP网页,我不确定是否使用jQuery创建一个AJAX调用onclick事件在menu.php访问一个"改变"的stock-c.php文件,如:

class StockController{
    $obj=new StockController();
    $obj->checkAccessRights();
    public function checkAccessRights(){
        //some code here
    }
    public function getPID(){
        //some code here
    }
}

,这是建议在如何调用PHP函数类从HTML按钮点击将工作,因为这打破了我的能力,以访问其他函数。我只是不确定我还有什么选择。

在脚本中调用不同方法的一种方法是使用PHP的变量函数。这将允许使用get或post请求调用脚本,并使用输入来选择调用哪个函数。

从php.net

:

<?php
class Foo
{
    function Variable()
    {
        $name = 'Bar';
        $this->$name(); // This calls the Bar() method
    }
    function Bar()
    {
        echo "This is Bar";
    }
}
$foo = new Foo();
$funcname = "Variable";
$foo->$funcname();  // This calls $foo->Variable()
?>

出于安全考虑,最好使用switch语句或其他限制输入的方法,以防止用户调用任意函数。