2013-05-08 121 views
0

我需要通過jQuery AJAX一個數組送入軌道控制器發送jQuery的數組軌控制器

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的(文件「的翻譯:」沒有一個有效的根):

回答

0

你能CONSOLE.LOG您的陣列?這會很容易,你點擊它時可以檢查子元素。在FireFox中(安裝FireBug插件)或在Chrome中按F12打開開發工具並查看控制檯。

我不認爲這會爲IE瀏覽器,但你可以將JavaScript對象轉換爲JSON與JSON.stringify這樣你就可以把你的味精爲JSON:

嘗試:

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

的你遇到的錯誤是來自你的Rails應用程序,但你沒有發佈任何錯誤發生的代碼。

我不確定在rails中rexml是什麼,所以不能真正幫助你。

2

要通過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

相關問題