43

フォームの送信で特定の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>
4

7 に答える 7

76

次の行で

<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();
} 
?>
于 2012-09-08T05:49:59.260 に答える
10

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

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

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

ここにコードがあります

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

issetのPHPマニュアルはこちら

于 2012-09-08T05:54:00.803 に答える
6

スクリプトの名前が 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>
于 2012-09-08T05:56:29.890 に答える
2

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

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

于 2012-09-08T05:47:34.987 に答える
0

送信ボタンのクリック時に関数を呼び出したい場合は
、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>
于 2012-09-08T05:49:15.913 に答える