フォームの送信時に特定の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>
次の行で
<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();
}
?>
このコードは必要ありません
<?php
function display()
{
echo "hello".$_POST["studentname"];
}
?>
代わりに、isset
を使用して投稿変数を確認することにより、フォームが送信されたかどうかを確認できます。
ここにコードがあります
if(isset($_POST)){
echo "hello ".$_POST['studentname'];
}
isset のphpマニュアルはここをクリック
スクリプトの名前が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>
PHPはサーバーで実行されます。ブラウザはクライアントです。サーバーがすべての情報をクライアントに送信すると、別の要求が行われるまでサーバー上で何も実行できません。
ページを更新せずに別のリクエストを行うには、ajaxを調べる必要があります。 ajaxリクエストを簡単にするjQueryを調べます
このコードを書く
<?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>
送信ボタンをクリックして関数を呼び出したい場合は、
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>