2016-10-19 4 views
-1

私は学校プロジェクト用のウェブサイトを構築しようとしています。 Submitボタンをクリックした後に、schoolResponse()関数を実行します。 jQuery関数を削除すると動作しますが、ページをロードするとデフォルト値が表示されます。ここでボタンをクリックしてPHPコードを実行するにはどうすればよいですか?

は私のコードです:

<!DOCTYPE html> 
<html> 
    <head> 
    <title>NHG</title> 
    <meta charset="UTF-8"/> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"/> 
    <link type="text/css" rel="stylesheet" href="css/normalize.css"/> 
    <link type="text/css" rel="stylesheet" href="css/style.css"/> 
    <link type="text/css" rel="stylesheet" href="css/resposive.css"/> 
    </head> 
    <body> 
    <header> 
      <div id="main-head"> 
       <a href="#"><h2 id="main-heading">sKoolBook</h2></a> 
      </div> 
    </header> 
    <section> 
     <div id="container"> 
     <div id="wrapper"> 
      <form method="POST"> 
      <select name="school"> 
       <option value="none" name="none">Please Select a School...</option> 
       <option value="NHG">New Horizon Gurukul</option> 
      </select> 
      <input type="submit" class="button"/> 
      <?php 
       error_reporting(0); 
       $school = $_POST['school']; 
       function schoolResponse() { 
       if ($_POST['school'] == 'none'){ 
        echo 'nothing'; 
       } else { 
        echo 'something'; 
       } 
       } 
      ?> 
      <script> 
       $('.button').click(
       function(
        <?php schoolResponse(); ?> 
       ); 
      ); 
      </script> 
      </form> 
     </div> 
     </div> 
    </section> 
    <footer> 
    </footer> 
    </body> 
</html> 
+1

サーバ側とクライアント側の言語のようなものを行う必要がありますyoururl.phpで

。 PHPはサーバ上で動作し、HTMLとJavaScriptを生成します。これは、まったく別のコンピュータで後で実行されます。 –

+0

私は、送信ボタンをクリックしてschoolResponse()関数を実行するソリューションを求めていることを理解しました。それだけを知りたい –

+0

そのためには、ページをサーバーに再送信して、新しい値(フォームなど)で再度実行するか、別のスクリプトへのAJAX呼び出しを発行し、必要な場所に値を注入する必要があります。 –

答えて

0

あなたはこのようにそれを達成することはできません。ここでは一つの解決策である:

  <?php 
      error_reporting(0); 
      $school = $_POST['school']; 
      function schoolResponse() { 
      if ($_POST['school'] == 'none'){ 
       echo 'nothing'; 
      } else { 
       echo 'something'; 
      } 
      } 

      if($_POST['school']) schoolResponse(); 

     ?> 

そうでない場合は、PHPエラーが無効になりますので、あなたは、例えばerror_reporting(E_ALL);error_reporting(0);を交換する場合、それが良いだろう。

そして、この部分を削除します。

 <script> 
      $('.button').click(
      function(
       <?php schoolResponse(); ?> 
      ); 
     ); 
     </script> 

しかし、それは非常に非常に基本的な例です。

+2

'error_reporting 0); 'エラー報告を無効にします。おそらく 'error_reporting(E_ALL);'を意味しています。 error_reporting(E_ALL)を伴う –

+0

;それはより良い...ちょうど質問のコードの一部を使用して... @ Shreyas Sreenivasaはerror_reporting(0)が必要ですが、私は知らないが、コメントのためにありがとう – krasipenkov

0

これを行うには、jQuery/AJAXを使用する必要があります。

<script> 
        $('.button').click(
        $.ajax({ 
         url: 'yoururl.php', 
         data: $("form").serialize(), //Better to put an ID to the form or something 
         success: function(data){ 
          //DO something with your data 
        } 

     }) 
       ); 
       </script> 

ajaxリクエストを正しく使用するためにチェックする必要がある他の機能があります。あなたは、変数を相互作用するか、または共有しない

$school = $_POST['school']; 
      function schoolResponse() { 
      if ($_POST['school'] == 'none'){ 
       echo 'nothing'; 
      } else { 
       echo 'something'; 
      } 
      } 
+0

フォームにIDを入れる方が良いまたは何か、フォームにIDを入れてそこに入力するような意味ですか?私のデータはどうすればいいですか? –

+0

更新:どのデータについて話していますか? yoururl.phpにあるものは? –

+0

フォームにIDを入れる方が良いので、ビューにフォームがある場合は、必要なものを送信してください。 –

関連する問題