2012-01-25 15 views
0

ボタンがあり、ボタンがクリックされたときに何らかの処理を行う関数を呼び出すことができません。ただし、関数を呼び出すことはありません。何が間違っていますか?ボタンをクリックしたときに関数を呼び出す方法

<input type="submit" name="submit" onclick="counterminus()" id="submit" value="Buy!" 
       <? 
        function counterminus() 
{ 

         $cmeter = $cmeter - 1; 



         mysql_query("INSERT orders SET quantity='$value',fbId='$fbme',fbName='$fbName', email ='$fbEmail', dealName='$dealName'"); 
         mysql_query("UPDATE stardeal SET cmeter='$cmeter'WHERE dealId='$dealId'"); 
         echo '<script type="text/javascript">' 
         , 'reloadPage();' 
         , '</script>'; 

       } 
?> 
+1

これは何ですか???? – diEcho

答えて

1

何が問題になるのは、PHPをクライアントサイドの言語と混同していることです。すべてのPHP処理は、ページがユーザに送信される前にサーバサイドで行われるため、クライアントはサーバにリクエストを送信せずにPHPスクリプトを呼び出すことはできません。

代わりにPHPスクリプトに投稿するボタンにjavascriptイベントを接続してみてください。

0

PHPはサーバー側のスクリプト言語です。つまり、サーバーからページが要求されたときにスクリプトが実行され、クライアントがページをダウンロードしたときにスクリプトが停止します。したがって、スクリプトがもはや実行されていないため、Webページから直接PHP関数を呼び出すことはできません。

JavaScriptは、ページが読み込まれたときに開始され、ページが閉じられるまで実行されます。したがって、代わりにボタンイベントを処理するために使用する必要があります。 で、サーバー上でPHPコードを呼び出す必要がある場合は、AJAXをご覧ください。

0

以下のようにサーバー側の関数を呼び出し、クエリ実行後にページをリダイレクトします。

<?php 
if(isset($_REQUEST['submit'])) 
{ 
counterminus(); 
} 
    function counterminus() 
{ 
$cmeter = $cmeter - 1; 
mysql_query("INSERT orders SET quantity='$value',fbId='$fbme',fbName='$fbName', email ='$fbEmail', dealName='$dealName'"); 
mysql_query("UPDATE stardeal SET cmeter='$cmeter'WHERE dealId='$dealId'"); 

Header("location:samePage.php"); 

} 

?>

<input type="submit" name="submit" id="submit" value="Buy!" /> 
1

私はこれがあなたの問題を解決することを願っています。

コード:

<html> 
    <body> 
     <?php 
     $a = "hello"; 
     ?> 
     <script> 
      function echoHello() 
      { 
       alert("<?php hello(); ?>"); 
      } 
     </script> 
     <?php 

     function hello() { 
      global $a; 
      echo $a; 
     } 
     ?> 
     <button onclick="echoHello()">Say Hello</button> 
    </body> 
</html> 
+1

私はあなたのソリューションが解決するものをOPに詳細に説明できると思います。ありがとう。 –

関連する問題