1

jquery ajaxを介して1つの配列をRailsコントローラーに送信する必要があります

jqueryコード

$(document).ready(function(){

var counter = 2;
$("#addButton").click(function () {
   var newTextBoxDiv = $(document.createElement('div'))
     .attr("id", 'TextBoxDiv' + counter);

   newTextBoxDiv.after().html('<input type="text" placeholder="Role" name="Role' + 
   counter + 
      '" id="textbox' + counter + '" value="" > <input type="text" 
placeholder="Search" name="search' + counter + 
      '" id="se" value="" >');

newTextBoxDiv.appendTo("#TextBoxesGroup");
counter++;
});



$("#getButton").click(function () {
var fd = new FormData($("#movie-form")[0]); 
var name = document.getElementById("file").files[0].name;
var arr = [];
var msg = '';
for(i=1; i<counter;i++){
  msg += "\n Textbox #" + i + " : " + $('#textbox' + i).val(); 
      arr[i] = $('#textbox' + i).val();
}
 $.each(arr,function(index, item)
{   
     alert(index);
     alert(item);
   }
);

fd.append( 'file', name);
fd.append( 'file22', name);
$.ajax({
url: '/create',
data: {fd:fd,arr:arr},
processData: false,
contentType: false,
type: 'POST',
success: function(data){
alert(data);
}
});
return false;
});

しかし、それはエラーを示しています

リクエスト パラメータの解析中にエラーが発生しました。内容: REXML::ParseException (ドキュメント "[object Object]" に有効なルートがありません):

4

2 に答える 2

3

jquery 経由で ajax POST リクエストを実行するには、データが文字列である必要があります。

$.ajax({
    url: "/create",
    type: 'POST',
    contentType: 'application/json',
    dataType: 'json',
    data: JSON.stringify(formData),
    function(data){
        alert(data)
    }
});

JSON が IE6/7 で定義されていないことに注意してください。これらのブラウザーをターゲットにする必要がある場合は、 https ://github.com/douglascrockford/JSON-js を使用してください。

于 2013-05-08T09:09:46.170 に答える
0

アレイを console.log できますか? それははるかに簡単で、クリックするとサブ要素を調べることができます。FireFox (FireBug プラグインがインストールされている) または Chrome で F12 を押して開発ツールを開き、コンソールを表示します。

これは IE では機能しないと思いますが、JSON.stringify を使用して JavaScript オブジェクトを JSON に変換できるため、メッセージを JSON として送信できます。

試す:

for(i=1; i<counter;i++){
      arr[i] = $('#textbox' + i).val();
}
msg= JSON.stringify(arr)

発生しているエラーは Rails アプリからのものですが、そのエラーが発生するコードを投稿していません。

レールで rexml が何をするのかよくわからないので、それについては本当に役に立ちません。

于 2013-05-08T08:35:14.123 に答える