2017-05-08 21 views
-2

Ajax経由で複数のJSONオブジェクトを送信しようとしています。Ajax経由で複数のJSONオブジェクトを送信

私のオブジェクト(複数のフォームから作成)は以下のとおりです。

AjaxがJSONをその空に送信すると、しかし、私はjsonオブジェクトのいずれかを検索する場合、値が含まれています。私は問題が私がマルチレイヤオブジェクトを作成するときにあるようだと思う。

コントローラのオブジェクトにどのようにアクセスできるかを理解する必要があります。

data.dataFormOne.titleのようになりますか?

var dataFormOne = ''; 
var dataFormTwo = ''; 
var dataFormThree = ''; 

$("#formone").submit(function(e){ 
    var title = $('select[name="Title"]').val();  
    dataFormOne = {firstname: firstname}; 
});     

$("#formtwo").submit(function(e){ 
    var address = $("#address").val();;  
    dataFormTwo = {address: address}; 
});         

$("#formtwo").submit(function(e){ 
    var country = $("#country").val();; 
    dataFormThree = {country: country}; 
});       

function sendData() { 
    var data = { 
    formone: dataFormOne, 
    formtwo: dataFormTwo, 
    formThree: dataFormThree, 
    }; 

    $.ajax({ 
    type: "POST", 
    url:URL, 
    dataType: "json", 
    data: data , 
    cache: false, 
    success: function (data) { 
     if (data.result) { 
     console.log(data.result); 
     } else { 
     alert("There has been an error\nPlease make sure you are logged in."); 
     } 
    }, 
    complete: function() {} 
    });     
} 
+0

1.コード内に2つの '#formtwo'があります。それは1つではありませんか? 2.送信コールバック関数で、 'sendData'関数を呼び出していますか? – Santosh

答えて

-1

あなたのAjaxの構成 にtrueに設定され、伝統的な、私はあなたの質問からのコード例を作成しました。この

traditional : true, 
data:{formone: dataFormOne,formtwo: dataFormTwo,formThree: dataFormThree} 
+0

こんにちはハッサン。私はそれを試してみました。それは動作しませんでした –

+0

あなたはどのようなエラーが表示されますか? –

-1

のようにそれを送ります。欠落していたことがいくつかあります(各送信時にsendDataを呼び出さないなど)。また、1ページの複数のフォームは「許可」されていません(ただし、そのまま使用することはできます)。また、データオブジェクトも再フォーマットされました。コントローラーでそのオブジェクトを受け取ると、必要なフィールドを簡単に検索することができます。この例では、あなたのコントローラに戻って掲載される内容の例については、コンソールを見て実行したら

の作業フィドルを(あなたはそれを動作させるために呼び出すバックAjaxのポストのコメントを解除する必要があります):https://jsfiddle.net/HappyiPhone/wfkggtzm/1/

var dataFormOne = ''; var dataFormTwo = ''; var dataFormThree = '';

$("#formone").submit(function(e){ 
      dataFormOne  = {firstname: firstname}; 
      sendData(e); 
     });     

      $("#formtwo").submit(function(e){ 
      var address = $("#address").val();;  
           console.log($("#formtwo").serialize()); 
      dataFormTwo  = {address: address}; 
      sendData(e); 
     });         

      $("#formtwo").submit(function(e){ 
      var country = $("#country").val();;  
      dataFormThree  = {country: country}; 
      sendData(e); 
     });       



     function sendData(e) { 

      var data  = {dataFormOne, 
          dataFormTwo, 
          dataFormThree, 
          }; 
        console.dir(data); 
     e.preventDefault(); 
     /* 
     $.ajax({ 
        type: "POST", 
        url:URL, 
        dataType: "json", 
        data: data , 
        cache: false, 
        success: function (data) 
        { 
         if (data.result) 
         { 
         console.log(data.result); 
         } 
         else 
         { 
          alert("There has been an error\nPlease make sure you are logged in."); 
         } 
        }, 
        complete: function() {} 
       });     

       */ 
} 
関連する問題