web-dev-qa-db-ja.com

フォーム送信時に特定のPHP関数を呼び出す

フォームの送信時に特定のphp関数を呼び出そうとしましたが、フォームとphpスクリプトの両方が同じページにあります。私のコードは以下にあります(動作していないので、助けが必要です)

<html>
    <body>
    <form method="post" action="display()">
        <input type="text" name="studentname">
        <input type="submit" value="click">
    </form>
    <?php
        function display()
        {
            echo "hello".$_POST["studentname"];
        }
    ?>
    </body>
</html>
32
Piklu Guha

次の行で

<form method="post" action="display()">

アクションはスクリプトの名前であり、関数を呼び出す必要があります

<form method="post" action="yourFileName.php">
    <input type="text" name="studentname">
    <input type="submit" value="click" name="submit"> <!-- assign a name for the button -->
</form>

<?php
function display()
{
    echo "hello ".$_POST["studentname"];
}
if(isset($_POST['submit']))
{
   display();
} 
?>
59
The Alpha

このコードは必要ありません

<?php
function display()
{
echo "hello".$_POST["studentname"];
}
?>

代わりに、issetを使用して投稿変数を確認することにより、フォームが送信されたかどうかを確認できます。

ここにコードがあります

if(isset($_POST)){
echo "hello ".$_POST['studentname'];
}

isset のphpマニュアルはここをクリック

8

スクリプトの名前がx.phpであると仮定して、これを試してください

<?php 
   function display($s) {
      echo $s;
   }
?>
<html>
    <body>
        <form method="post" action="x.php">
            <input type="text" name="studentname">
            <input type="submit" value="click">
        </form>
        <?php
           if($_SERVER['REQUEST_METHOD']=='POST')
           {
               display();
           } 
        ?>
    </body>
</html>
5

PHPはサーバーで実行されます。ブラウザはクライアントです。サーバーがすべての情報をクライアントに送信すると、別の要求が行われるまでサーバー上で何も実行できません。

ページを更新せずに別のリクエストを行うには、ajaxを調べる必要があります。 ajaxリクエストを簡単にするjQueryを調べます

1
Kris

このコードを書く

<?php
    if(isset($_POST['submit'])){
        echo 'Hello World';
    } 
?>

<html>
     <body>
         <form method="post">
             <input type="text" name="studentname">
             <input type="submit" name="submit" value="click">
         </form>
     </body>
</html>
1
GYaN

送信ボタンをクリックして関数を呼び出したい場合は、
ajaxまたはjqueryを使用するには、フォームの送信後にphp関数を呼び出したい場合、次のようにします。

<html>
<body>
<form method="post" action="display()">
<input type="text" name="studentname">
<input type="submit" value="click">
</form>
<?php
function display()
{
echo "hello".$_POST["studentname"];
}
if($_SERVER['REQUEST_METHOD']=='POST')
{
       display();
} 
?>
</body>
</html>
0
Tarun