0

いくつかのデータをphpファイルに送信し、例としていくつかの結果を返すフォームがあります。

<form action"<?php $_SERVER['PHP_SELF']?>" method="post" id="data">
  <input type"text" name="first_name"/>
  <input type="text" name="last_name"/>
</form>

次に、JavaScriptで、例として送信フォームでclcikイベントをキャッチします。

$("#data").submit(function(){
some code .....
});

これにより、入力フォームをphpファイルに送信するためのデフォルトのアクションが妨げられます。問題は、phpファイルのフォームのデータと同じフォームのcatchイベントを同時に送信できるかどうかです。

注phpファイルから返されたデータは別のphp関数で必要になります

4

2 に答える 2

3

フォーム送信(ページの再読み込み)のデフォルトの動作を防ぐには、次のevent.preventDefault()ように使用する必要があります

$("#data").submit(function(event){
    event.preventDefault();
    //some code .....
});

また、ページを更新せずにフォームデータを投稿するphpには、次のようなjQueryで使用可能なajaxメソッドのいずれかを使用する必要があります.post()(メソッドを使用してフォーム値を送信しますHTTP POST) 。

$("#data").submit(function(event){
    event.preventDefault();// prevent page reload
    // Now post the form using Ajax
    // $(this).serialize() will return an array of all form fields as
    //                                                 name value pair 
    $.post('some_script.php',$(this).serialize(),function(data){
        // Just to check if everything is working well
        console.log('Form Submitted Successfully.');
        // do whatever you want with the data
   });
});

phpスクリプトがデータをjson形式で返す場合は、phpcontent-Typeを使用してヘッダーを設定するか、jQueryに4番目のパラメーターのようにasJSONを指定して返されるデータを処理させることができます。dataTypeJSON

   $.post('some_script.php',$(this).serialize(),function(data){
        // Just to check if everything is working well
        console.log('Form Submitted Successfully.');
        // do whatever you want with the data
   },'json');
于 2012-06-25T10:25:26.117 に答える
0
$("#data").submit(function(e){
e.preventDefault();
$.post("<?php echo $_SERVER['PHP_SELF'] ?>",$(this).serialize(),function(r){ //Do Some Action });
});
于 2012-06-25T10:13:32.803 に答える