2016-03-27 5 views
0

をリロードせずにPHPのページに複数のデータを送信する完全に作業するは、私はそう私はちょうどjQueryのに新しいコードをコピーしていてくださいページ

<?php 
if (isset($_POST['name'])) { 
    echo '<h1>'.$_POST['name']; 
} 
?> 

そのけど今私はこのような複数の入力フィールドを持っています:

<input type="text" id="name" > 
<input type="text" id="job"> 

しかし、私はどのようにthのjQueryコードを実行するのか分からないe 2の入力フィールドに入力し、phpページにそれらを転送することができます。助けが必要です

+2

私は、あなたがコピーしたコードを理解しようとしているお勧めします。次に、これがどれほど簡単かを確認します。 :-) – kkaosninja

+0

これはテスト目的のためのものであると仮定していますが、ユーザが指定したデータを最初にサニタイズせずにechoしてはいけません(例えば、 'htmlentities()')。 – Mike

答えて

0

dataこのようなajaxリクエストのパラメータを使用して複数の値を渡すことができます。

$.ajax({ 
    method: "POST", 
    url: "action.php", 
    data: { 
     name: $('#name').val(), 
     job: $('#job').val() 
    }, 
    success: function(status) { 
     $('#result').append(status); 

     $('#name, #job').val(''); // Reset value of both fields 
    } 
}); 
0

htmlとJSでいくつか追加してコードを変更する必要があります。 formタグに入力をラップします。サブミット時にpreventDefaultを追加します。 使用jQueryの.serialize()方法 とevent.preventDefault()

  • event.preventDefault():このメソッドが呼び出された場合、イベントのデフォルト アクションがトリガされません。 (ページ のリロード/リダイレクトを防止します)。

  • .serialize():フォーム要素のセットを
    submissionの文字列としてエンコードします。

シリアライズされた文字列出力を分離&key=value一対のようになります。 :

name=john&job=developer.....

HTML

<form id="myform"> 
    <input type="text" id="name" placeholder="Type here and press submit"> 
    <input type="text" id="job" placeholder="Type here and press submit"> 
    <input type="submit" name="submit" value="Submit Form"> 
</form> 

JS

$(document).ready(function() { 
     $('#myform').submit(function(event) { 
      event.preventDefault(); 
       var serialized = $('#myform').serialize(); 
       $.ajax({ 
        method: "POST", 
        url: "action.php", 
        data: serialized, 
        success: function(status) { 
         $('#result').append(status); 
         $('#myform').reset(); 
        } 
       }); 
     }); 
    }); 
関連する問題