设置调用PHP函数,将POST变量作为参数,作为HTML表单操作

时间:2012-04-08 18:06:13

标签: php html database forms function

我目前有一个HTML文件,其中有一个表单,当提交POST时,表格和&调用一个简短的PHP文件,使用POSTed变量作为参数调用另一个PHP文件中的函数。文件都在下面。我想知道的是我是否可以以某种方式跳过中间人PHP文件,并简单地从我的HTML文件中调用该函数。 理想情况下,这将设置对函数的调用:

insert_PE(new PE($_POST[Date],$_POST[Participant],$_POST[Time],$_POST[Result],$_POST[Notes]));

作为表单操作。有谁知道如何实现这一目标?

HTML:

<FORM ID="FORM1" METHOD="POST" AUTOCOMPLETE="off" ACTION = "writeToDL.php">
    <INPUT TYPE="hidden" NAME="Date" STYLE="WIDTH:0px; " MAXLENGTH="8" TITLE="Enter Date" Value="<?php $dt = date('Y-m-d'); echo $dt ?>"/>
    <INPUT TYPE="text" NAME="Time" STYLE="WIDTH:70px; " MAXLENGTH="7" ONCHANGE="validateTime();" />
    <SELECT NAME = "Result">
        <OPTION VALUE = OK></OPTION>
        <OPTION VALUE = C>C</OPTION>
    </SELECT>
    <SELECT NAME = "Participant" STYLE = "WIDTH: 187">
        <OPTION SELECTED VALUE = "">Select...</OPTION>
            <?PHP
                $allParticipants = getall_participants();
                foreach($allParticipants as &$value) {
                    $val = $value->get_id();
                    echo "<OPTION VALUE='",$val,"'>";
                    echo $value->get_first_name()," ",$value->get_last_name();
                    echo "</OPTION>";
                }
            ?>
    </SELECT>
    <TEXTAREA NAME='Notes' COLS='28' ROWS='5'></TEXTAREA>
    <INPUT TYPE="image" SRC = "images/submit.png" VALUE="Submit Participant"/>
</FORM>

PHP文件:

<?php
    include_once('database/PE.php');
    insert_PE(new PE($_POST[Date],$_POST[Participant],$_POST[Time],$_POST[Result],$_POST[Notes]));
?>

4 个答案:

答案 0 :(得分:1)

  

我想知道的是,我是否可以以某种方式跳过中间人PHP文件,只需从我的HTML文件中调用该函数。

没有。客户端只知道URI。

URI可以映射到PHP程序。多个URI可以映射到同一个PHP程序。您可以使用逻辑来确定为给定URI运行的函数。你不能避免在你的程序中使用那个逻辑。

答案 1 :(得分:1)

你可以这样做:

<?php

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    include_once('database/PE.php');
    insert_PE(new PE($_POST['Date'],$_POST['Participant'],$_POST['Time'],$_POST['Result'],$_POST['Notes']));
} ?>
<html>
... rest of your page here ...
</html>

这样,只有在实际执行POST时才会触发PHP代码。有人会建议检查表单字段是否存在,但这是不可靠的 - 您可能会改变表格,忘记更新if()。检查请求方法保证100%可靠。

答案 2 :(得分:0)

一种选择是method="_the_main_php_file_containing_function_to_be_called_" 我希望它能正常工作。

答案 3 :(得分:0)

我认为您可以在表单上使用隐藏字段,并使用要在“destination.php”上运行的函数的名称填充它。然后,“destination.php”上的switch语句可以从POST变量中提取函数的名称。