web-dev-qa-db-ja.com

ボタンのクリックでphp関数を実行する

ボタンのクリック時にphp関数を実行したい。例えば:

<input type="button" name="test" id="test" value="RUN"  onclick="<?php echo testfun(); ?>" /><br/>

<?php

function testfun()
{
   echo "Your test function on button click is working";
}

?>

私の質問は、これを行うと、期待した出力が得られないことです。単純なbuttonまたはsubmitであるかどうかにかかわらず、ボタンクリックでphp関数を実行するための最適なソリューションを教えてください。

9
JD_bravo

兄のウィリアムのコードを試しました。

しかし、method = "post"でフォームを追加する必要がある単純なボタンとしては機能しません。また、ボタンの代わりに送信を作成する必要があります。

以下は私のコードです。

<form method="post">
    <input type="submit" name="test" id="test" value="RUN" /><br/>
</form>

<?php

function testfun()
{
   echo "Your test function on button click is working";
}

if(array_key_exists('test',$_POST)){
   testfun();
}

?>
14
JD_bravo

これを行う:

<input type="button" name="test" id="test" value="RUN" /><br/>

<?php

function testfun()
{
   echo "Your test function on button click is working";
}
if(array_key_exists('test',$_POST)){
   testfun();
}
?>
3
William Madede

JavaScript関数を呼び出そうとしています。 PHP関数を呼び出したい場合は、たとえばフォームを使用する必要があります:

    <form action="action_page.php">
       First name:<br>
       <input type="text" name="firstname" value="Mickey">
       <br>
       Last name:<br>
       <input type="text" name="lastname" value="Mouse">
       <br><br>
       <input type="submit" value="Submit">
     </form> 

(元のコード: http://www.w3schools.com/html/html_forms.asp

したがって、非同期呼び出しを実行する場合は、「Ajax」を使用できます。これがJavascript-Wayです。しかし、今回は私のコード例で十分だと思います:)

1
<a href="home.php?click=1" class="btn">Click me</a>
<?php 
  if($_GET['click']){
    doSomething();
  }
?>

しかし、JSを使用し、ajaxを使用して関数を呼び出すことをお勧めします。

1
Ivan Abadzhiev