1

私は現在、フォームを含むHTMLファイルを持っています。フォームを送信すると、フォームが送信され、POSTされた変数をパラメーターとして使用して別のPHPファイル内の関数を呼び出す単純な短い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

4 に答える 4

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>

このように、PHPコードは、POSTが実際に実行された場合にのみ起動します。フォームフィールドの存在を確認することを提案する人もいますが、それは信頼できません。後でフォームを変更して、の更新を忘れる可能性がありますif()。リクエストメソッドのチェックは100%信頼できることが保証されています。

于 2012-04-08T19:06:24.530 に答える
0

1つのオプションは、method="_the_main_php_file_containing_function_to_be_called_"
うまくいくことを願っています。

于 2012-04-08T18:23:28.620 に答える