2017-03-28 9 views
0

私は複数の値を持っていますが、私はすべての値を一度にコントローラクラスに渡そうとしています。ajax urlで複数の配列値を渡す方法

ただし、最後の値はURLで渡されます。

function submitFormData(formData) { 
var x = []; 
for(var i = 0;i < formData.length ;i++){ 
    alert(i); 
    x = []; 
    x.push(formData[i].name); 
    x.push(formData[i].email); 
    x.push(formData[i].message); 
} 
var url= '/userrecords?x='+x; 
alert(url); 
    $.ajax({ 
      type: 'POST', 
      data: formData, 
      cache: false, 
      processData: false, 
      contentType: false, 
      beforeSend: beforeSendHandler, 
      url: url, 
      success: function(result){ 
      if(result.success == true) { 
       $('.alert-success').show(); 
       $('.alert-danger').hide(); 
       $("#successmsg").html(result.msg); 
       setTimeout(function() { 
       $(".alert-success").alert('close'); 
       }, 10000); 
      } else { 
       $('.alert-danger').show(); 
       $('.alert-success').hide(); 
       $("#error").html(result.msg); 
       setTimeout(function() { 
       $(".alert-danger").alert('close'); 
       }, 10000); 
      } 
      } 
    }); 
} 

コントローラクラス

私のコードで間違って何
@RequestMapping(value = "/userrecords") 
public @ResponseBody StatusResponse saveList(@RequestParam(required = false) String x,Model model) 
    throws ParseException, SQLIntegrityConstraintViolationException { 
    //read all values here 
} 

。そしてコントローラのすべての値を読み込む方法。

+0

「POST」を実行している場合、なぜあなたはURLでデータを送信しますか? – abhishekkannojia

+0

あなたはサンプルのformDatとURLを共有してください。 – brk

+0

データを投稿するために 'x'変数が必要ない場合、formdataはデータを投稿するのに十分です。コントローラでは、投稿データに名前でアクセスできます。 '名前'、 'メッセージ'など – MUT

答えて

1

JSONで配列出力を変換してAJAXを使用して送信し、コンテンツタイプをJSONとして定義する必要があります。

jquery ajaxを使用することもできますが、リクエストレスポンスは非常に簡単です。

$.ajax({ 
type: "POST", 
dataType: 'json', 
url:"URL here", 
success: function(data) // response 
{} 
}); 
+0

私の更新された質問を見てください。私はどのようにコントローラ内のすべての値を取得するクラスがありますか? – user7646838

0

フォームデータを以下のようにajaxデータとして投稿する必要があります。

xをajaxデータとして渡すことができます。

function submitFormData(formData) { 
var x = []; 
for(var i = 0;i < formData.length ;i++){ 
    alert(i); 
    x.push(formData[i].name); 
    x.push(formData[i].email); 
    x.push(formData[i].message); 
} 
var url= '/userrecords'; 
alert(url); 
    $.ajax({ 
      type: 'POST', 
      data: x, 
      cache: false, 
      processData: false, 
      contentType: false, 
      beforeSend: beforeSendHandler, 
      url: url, 
      success: function(result){ 
      if(result.success == true) { 
       $('.alert-success').show(); 
       $('.alert-danger').hide(); 
       $("#successmsg").html(result.msg); 
       setTimeout(function() { 
       $(".alert-success").alert('close'); 
       }, 10000); 
      } else { 
       $('.alert-danger').show(); 
       $('.alert-success').hide(); 
       $("#error").html(result.msg); 
       setTimeout(function() { 
       $(".alert-danger").alert('close'); 
       }, 10000); 
      } 
      } 
      }); 
} 
+0

さて、コントローラークラスのデータにどうやってアクセスできますか? – user7646838

+0

このリンクに従ってくださいhttps://www.danylkoweb.com/Blog/3-ways-to-receive-data-from-postbacks-in-aspnet-mvc-C2 –

+0

私はJavaを使用しています – user7646838

関連する問題