从HTML onclick事件访问PHP方法

时间:2016-07-05 16:18:51

标签: javascript php jquery oop

我正在尝试开发一个网页(menu.php),点击时<div>访问stock-c.php中许多方法中的“一个”。我开发的代码如下:

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>

股票c.php

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

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

由于我需要在其他PHP网页中调用其他方法(如getPID()),我不确定是否使用jQuery在{{1}上创建AJAX调用} onclick中的事件可访问“已更改”的menu.php文件,例如:

stock-c.php
How to Call PHP Function in a Class from HTML Button Click中建议的

会起作用,因为这会破坏我访问其他功能的能力。我只是不确定我有什么替代品。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

在脚本中调用不同方法的一种方法是使用PHP的variable functions。这将允许使用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语句或其他限制输入的方式来阻止用户调用任意函数。