2017-06-08 10 views
1

ImはAJAXでPHPスクリプトを実行するボタンを取得しようとしています。私のコードは完全に間違っている可能性があるので、私は本当にjavaScriptとPHPの新しいです。私は問題が私のボタンクリックコードではなく、あまりAjaxコードではないと思う。すべてのヘルプは要素が存在する(またはブラウザによってレンダリングされる)前に、それが実行されるので、あなたはjQueryの周りDOM ready wrapperが必要ボタンとAJAXが応答しない

<script src="http://code.jquery.com/jquery-latest.js"></script> 
<script type="text/javascript"> 
    $(".submit").click(function myCall() { 
     var subdata = $("#form").serializeArray(); 
     var request = $.ajax({ 
      url: "construct_new.php", 
      type: "GET", 
      data: subdata 
     }); 
     return false; 
    }); 
    </script> 
    <div> 
     <form id="form"> 
      Name of Product: <input type="text" name="productName" value="Enter Here"> 
      <input type="button" name="submit" value="Submit" class="submit"> 
     </form> 
    </div> 
+0

問題が何ですか。何がうまくいかない?あなたはどんなエラーを出していますか? –

+0

ここにはPHPがないので、そこに問題がある場合は、あなたの質問にそのコードを含める必要があります。また、 "どのように"これが使われていてうまくいけば 'file:///'ではありません。 –

+0

PHPの質問でない場合は、タグを削除する必要があります。それは誤解を招く。 –

答えて

2

素晴らしいです。

$(function(){ })または$(document).ready(function(){ });のいずれかを使用できます。

$(function(){ 
    $(".submit").click(function myCall() { 
     var subdata = $("#form").serializeArray(); 
     var request = $.ajax({ 
      url: "construct_new.php", 
      type: "GET", 
      data: subdata 
     }); 
     return false; 
    }); 
}); 

このケースでは、 serializeArray()単に serialize()を必要としません。

開発者のコ​​ンソール/ネットタブを見ていない限り、成功または完全機能が定義されておらず、送信時に何も表示されません。

また、フォームのサブミットイベントを使用すると、サブミットボタンのクリックイベントより優先されます。

$(function(){ 
    $("#form").submit(function myCall() { 
     var subdata = $(this).serialize(); 
     var request = $.ajax({ 
      url: "construct_new.php", 
      type: "GET", 
      data: subdata, 
      success : function(response){ 
       console.log("success!"); 
      } 
     }); 
     return false; 
    }); 
}); 
+0

これはボタンが働いてくれてありがとう!私は今、別のエラーを取得、私は今それをトラブルシューティングし、私が再び困惑する場合に戻ってくるつもりです。もう一度ありがとう! –

+0

私のPHPファイルがセッション変数を作成して使用している場合、session_start()は元のページとPHPスクリプトの両方にある必要がありますか? –

+1

session_start()は、セッションに読み書きする必要のあるPHPに存在する必要があります。 – MrCode

0

このような準備ができてドキュメント内にあなたのjQueryを入れて、(フォームを送信するために)デフォルトのアクションを防ぐ:準備

<script type="text/javascript"> 
    $(document).ready(function(){ 
      $(".submit").click(function(e) { 
       e.preventDefault(); 
       var subdata = $("#form").serializeArray(); 
       $.get("construct_new.php",{data: subdata}, function(){ 
        console.log(data); // whatever returned by php 
       }); 
      }); 
     }); 
    </script> 

ドキュメントは、必ずページがすべてのロードが完了したことができます。 e.preventDefault()は、デフォルトのアクションを停止します(フォームのsubmission、aタグのリンクに続く)。

関連する問題