我正在尝试开发一个网页(menu.php
),点击时<div>
访问stock-c.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>
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中建议的会起作用,因为这会破坏我访问其他功能的能力。我只是不确定我有什么替代品。任何帮助将不胜感激。
答案 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语句或其他限制输入的方式来阻止用户调用任意函数。