2012-10-02 151 views
0
$(".submitinfo").each(function() { 
    // Want to use ID as POST name 
    // And value as POST value 
}); 
// Submit the data 
$.ajax({ 
    url: 'submit.php', 
    traditional: true, 
    data: { 
    'submit':'true', 
    'age':$('#age').val(), 
    'loss':$('#loss').val() 
     // somehow include results here 
}, 
type: 'POST', 
async: false, 
success: function(data) { 
    alert(data); 

}, 
error: function() { 
    alert('Submit Error'); 
} 
}); 

我以前從來沒有這樣做過,也找不到任何地方的任何例子。我有一系列的輸入和一類submitinfo,我希望能夠通過ajax請求與其他輸入一起提交。我怎樣才能做到這一點?查看代碼註釋瞭解詳細信息。通過ajax請求提交jQuery.each結果

謝謝!

+0

絕對不想使用同步Ajax請求。你應該設置'async:true'。 – Tomalak

回答

1

創建一個對象,並在each函數對象添加值,而對象傳遞給$.ajax數據:

var data = { 
    submit : 'true', 
    age : $('#age').val(), 
    loss : $('#loss').val() 
} 

$(".submitinfo").each(function() { 
    data[this.id]=this.value; 
}); 

$.ajax({ 
    url: 'submit.php', 
    traditional: true, 
    data: data, 
    type: 'POST', 
    async: false, 
    success: function(data) { 
    alert(data); 
    }, 
    error: function() { 
    alert('Submit Error'); 
    } 
}); 
0

這對你的作品:

var data = {}; 
$('.submitinfo').each(function() { 
    var el = $(this), 
     id = el.attr('id'), 
     val = el.val(); 

    data[id] = val; 
}); 

$.ajax({ 
    url: 'submit.php', 
    traditional: true, 
    data: data, 
    type: 'POST', 
    async: false, 
    success: function(data) { 
    alert(data); 
    }, 
    error: function() { 
    alert('Submit Error'); 
    } 
}); 
1

聽起來你正嘗試通過ajax提交表單。

我爲此使用的javascript成語更短更簡單。簡而言之,你使用serialize函數序列化表單jquery對象。這使它成爲一種友好的ajax格式。然後您可以直接發送到$.post。表單元素的name屬性對應於服務器端的請求參數名稱。

$.post(url, $('form').serialize(), function(data) { 
    alert("Success"); 
});