我目前有一个 HTML 文件,其中有一个表单,当提交时 POST 表单并调用一个简单的简短 PHP 文件,该文件使用 POSTed 变量作为参数调用另一个 PHP 文件中的函数。这些文件都在下面。我想知道我是否可以以某种方式跳过中间人 PHP 文件,并简单地从我的 HTML 文件中调用该函数。 理想情况下,这将设置对函数的调用:
insert_PE(new PE($_POST[Date],$_POST[Participant],$_POST[Time],$_POST[Result],$_POST[Notes]));
作为表单 Action 。有谁知道如何/是否可以实现?
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]));
?>
最佳答案
你可以这样做:
<?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>
这样,PHP 代码只有在实际执行 POST 时才会触发。有些人会建议检查是否存在表单字段,但这是不可靠的 - 您可能会在途中更改表单而忘记更新 if()
。检查请求方法保证 100% 可靠。
关于php - 设置对 PHP 函数的调用,将 POST 变量作为参数,作为 HTML 表单操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10065101/