点击按钮后运行PHP功能?

Vol*_*ort 5 php

我想用HTML按钮单击运行PHP函数.

我可以这样调用PHP脚本:

<form action="action.php" method="post">
  Name: <input type="text" name="txt"/>
  <input type="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

但我不想调用"action.php".我只想调用我在此页面中定义的PHP函数.可以这样做吗?

dom*_*ent 7

我喜欢使用的方法是jQuery/ajax调用面向对象的PHP类的混合.

我有一个jQuery监听器/触发按钮按下这样的东西:

$('#buttonId').live('click', function() {
    $.get('api.php?functionName=test&inputvar=something');

    return false;
});
Run Code Online (Sandbox Code Playgroud)

这将通过ajax调用api.php文件并阻止任何进一步的操作,例如表单提交.

然后在PHP文件中,您可以始终执行以下基本操作:

if ($_REQUEST['functionName'] == 'test') {
    test();
}
Run Code Online (Sandbox Code Playgroud)

或者,如果你有大量的课程和很多动态输入,你可以做一些更有趣的事情,如:

$functionName = $_REQUEST['functionName'];
if (method_exists($myClassInstance, $functionName))
    $myClassInstance->$functionName();
Run Code Online (Sandbox Code Playgroud)

有很多方法可以解决这个问题,但这些都是我的最爱.另一个替代方案是Extjs框架,它是为这种活动而构建的,但是如果你已经不熟悉它并且项目不是"巨大的"我不会关心它.

最后,如果你需要从php文件中获取响应,例如json results,那么不要使用jQuery:$.get()function,而是使用函数$.getJSON

希望有帮助:)