点击按钮运行PHP函数?

时间:2011-04-27 03:02:09

标签: php

我想运行一个带有HTML按钮的PHP函数。

我可以用这种方式调用PHP脚本:

<form action="action.php" method="post">
  Name: <input type="text" name="txt"/>
  <input type="submit" />
</form>

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

8 个答案:

答案 0 :(得分:7)

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

我有按钮按下jQuery监听器/触发器,如下所示:

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

    return false;
});

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

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

if ($_REQUEST['functionName'] == 'test') {
    test();
}

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

$functionName = $_REQUEST['functionName'];
if (method_exists($myClassInstance, $functionName))
    $myClassInstance->$functionName();

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

最后,如果您需要从php文件中获取响应,例如json results,那么请使用函数$.get()

而不是使用jQuery:$.getJSON函数。

希望有所帮助:)

答案 1 :(得分:2)

您需要在最后完成此操作。处理帖子并在您自己的action.php页面中调用该函数。您还可以创建一个单独的php页面来调用action.php中定义的函数。

答案 2 :(得分:1)

您可以使用jquery轻松完成

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>



    <script type="text/javascript">
    function submitform(){
        $('#myForm').post("pageName.php", $("#myForm").serialize());
    }
    </script> </head>

<form action="pageName.php" method="post" id"myForm">
Name: <input type="text" name="txt"/>
<input type="submit" />
</form>

答案 3 :(得分:0)

这不起作用。在用户处理页面时,PHP几乎完成了处理。您必须使用AJAX将数据发送到服务器并检索响应。

答案 4 :(得分:0)

您可以采用以下方法:

1&GT;使用AJAX将“action.php”加载到字段中输入的数据作为POST到页面,然后获取响应并将其放入正文中;或者,

2 - ;你无法使它工作,因为PHP是一种服务器端编程语言,你试图用PHP的HTML是一种客户端编程语言。所以除了AJAX之外没有办法使它工作。

答案 5 :(得分:0)

这有点复杂。您可以将表单提交给自己,检查是否设置了post变量(如果是,则表示页面正在运行,因为表单已提交给它),或者您可以使用ajax。 第一个是更简单的解决方案,第二个不需要页面重新加载。选择你的毒药;)

查看this第一个解决方案,然后查看jquery's ajax functions第二个解决方案。

答案 6 :(得分:0)

你应该在action.php中包含a.php,例如:

action.php:

include( 'a.php' );
//Your codes

如果你想在a.php中使用例如ok()函数,现在a.php存在于action.php中

答案 7 :(得分:-2)

你可以尝试:

<form action="pageName.php/functionName" method="post">
Name: <input type="text" name="txt"/>
<input type="submit" />
</form>