Html操作,不引用脚本并引用方法

时间:2012-04-09 00:08:52

标签: php html

通常,当我处理表单时,在“action”参数中,我通常必须引用一个完整的PHP脚本,如下所示:

<form method="post" action="foo.php"></form>

有没有办法告诉表单使用函数或方法而不必提及整个脚本?

6 个答案:

答案 0 :(得分:2)

不是我知道的,但我很确定你可以做这样的事情......

action="foo.php?fromForm=yes"

然后在你的PHP代码中,你可以拥有这个......

if($_GET['fromForm'] == "yes") {
//put your function here, or call it here
}
else {
//rest of code goes here
}

答案 1 :(得分:2)

想象你的表单看起来像:

<form name="form1" method="post" action="">
    <p>
        <label></label>
        <input type="text" name="textfield" id="textfield" />
    </p>
    <p>
        <label></label>
        <input type="submit" name="button" id="button" value="Submit" />
    </p>
</form>

然后你可以放在php的顶部:

if (isset($_POST['textfield'])) {
    foo();
}

foo();替换为您要执行的函数的名称。

这只是检查是否有任何表单数据发布到包含name="textfield"的页面。

答案 2 :(得分:0)

没有。您指定的内容不是脚本,而是网址。 HTML /浏览器不了解服务器端功能或方法,仅了解URL。

答案 3 :(得分:0)

您可以使用onsubmit属性来调用javascript方法:

<form method="post" onsubmit="doSomething()"></form>

您还可以在将表单传递给脚本之前使用它来验证表单,如下所示:

<form method="post" action="foo.php" onsubmit="canSubmit()"></form>

答案 4 :(得分:0)

注意:我假设您在询问是否可以在服务器端访问PHP代码中的方法或函数,而不是在客户端调用JavaScript函数! < / p>

客户端不能随意调用服务器端的方法。资源的URL或路径是用于标识服务器上的资源的内容。

如果要在同一脚本中执行不同的功能,可以使用if / else阻止并使用查询参数来区分您的URL。

<强> HTML:

 <form method="post" action="foo.php?method=saveData"></form>

<强> PHP:

<? /* foo.php */
    if($_REQUEST['method'] == "saveData") {

        // do stuff

    } else if($_REQUEST['method'] == "doSomethingElse") {
        // do other stuff

    }
?>

这是一个非常基本的例子。对于更复杂的需求,许多框架可以开箱即用地执行这种级别的分支,并且具有更高的复杂性。

答案 5 :(得分:0)

如果您的PHP脚本编写如下:

<?php
switch ($_GET ['f']) { 
  case 'do_one':
    // do something
    break;
  case 'do_two':
    // or use a callback
    do_two_callback ();
    break;
  default:
    // ...
}
?>

......你可以随时这样做

<form method="post" action="foo.php?f=do_one"></form>