2016-06-17 6 views
1

$ .ajax()メソッドをいくつかのフォーム要素と配列に渡す必要があります。どのように私はシリアライズと配列をAJAXで送ることができますか?

怒鳴る

私のコード:あなたはこの方法でそれを呼び出す必要がありますので

function loadgraficosajax(){ 
 
\t \t var arr = ['331234','142323','327767']; 
 
    
 
    \t var data = $('#p-form').serialize; 
 
    
 
     $.ajax({ 
 
      type: "POST", 
 
      url: "/page/show", 
 
      data: data, 
 
      dataType : 'html', 
 
      success: function (msg) { 
 
       $(document).ajaxComplete(function (event, request, settings) { 
 
        $('.has-error').removeClass('has-error'); 
 

 
        $(document).off('ajaxComplete').off('ajaxSend'); 
 
        $('#addajax').html(msg); 
 
       }); 
 
      } 
 
     }); 
 
\t }

+0

var data = {arr、$( '#p-form')。serialize} – Deep

+0

ようこそ、@ ikk1。この質問は既に[尋ねられ答えられている]ようです(http://stackoverflow.com/questions/32484972/jquery-ajax-form-array-submit)[様々な方法で](http://stackoverflow.com/search?q = jquery + ajax + form + array)。あなた自身の質問を作成する前に、検索と研究を忘れないでください。参照:[良い質問をするにはどうすればいいですか?](http://stackoverflow.com/help/how-to-ask)と[何故重複しているのはなぜですか?](http://stackoverflow.com/help/how-to-ask) /複製) – gfullam

+0

こんにちは@gfullam!私の質問は少し異なります。私は要素と配列を一意のAjaxリクエストで渡す必要があります。申し訳ありませんが、私はいくつかの答えを逃すが、私はこの質問の前に多くを探しました。 – ikk1

答えて

1

serializeは、jQueryのでは方法、ない財産です。

var data = $('#p-form').serialize(); 

とします配列を渡してparamメソッドを使用し、配列がObject内になるように配列を変更する必要があります。配列名はobjです電気ショック療法プロパティ:

var arr = { arr: ['331234','142323','327767'] }; 
var data = $('#p-form').serialize(); 
data += '&' + $.param(arr); 

paramは、シリアライズされた文字列に、オブジェクトを変換します:

console.log($.param(arr)); // "arr[]=331234&arr[]=142323&arr[]=327767" 
0
var formData = new FormData($('#p-form')[0]); 

var arr = ['331234','142323','327767']; 

// append array to formData 
formData.append('arr',JSON.stringify(arr)); 

$.ajax({ 
    type: "POST", 
    url: "/page/show", 
    data: formData, 
    success:..... 
+1

このコードスニペットは問題を解決するかもしれませんが、[説明を含む](https://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)は本当にあなたの投稿の質を向上させるのに役立ちます。将来読者の質問に答えていることを覚えておいてください。そうした人々はあなたのコード提案の理由を知らないかもしれません。あなたのコードに説明的なコメントを詰め込まないようにしてください。これは、コードと説明の両方の可読性を低下させます! –

0

あなたが送ることができる文字列化されたオブジェクトに2つのアイテムをバンドルできます。

function loadgraficosajax(){ 
    var arr = ['331234','142323','327767']; 

    var data = $('#p-form').serialize(); 

    var request = { 
     array: arr, 
     elements: data 
    } 

    var data = JSON.stringify(request); 

    $.ajax({ 
     type: "POST", 
     url: "/page/show", 
     data: data, 
     dataType : 'json', 
     success: function (msg) { 
      $(document).ajaxComplete(function (event, request, settings) { 
       $('.has-error').removeClass('has-error'); 

       $(document).off('ajaxComplete').off('ajaxSend'); 
       $('#addajax').html(msg); 
      }); 
     } 
    }); 
} 
関連する問題