2012-07-14 75 views
2

我是如何動態地通過jQuery與jQuery動態發送json格式的表單數據? 比如我編碼這樣的事情在JQ:以json格式通過ajax動態發送表單數據使用jQuery動態表單數據

$.post("test.php", { func: "getNameAndTime" }, 
    function(data){ 
     alert(data.name); // John 
     console.log(data.time); // 2pm 
    }, "json"); 

,這很好,但在現場應用經常需要發送大量表單數據和用戶可以動態改變的領域,所以我不知道如何許多func1,func2,func3甚至func []將被髮送。 q是如何動態地做到這一點,在AJAX的舊世界中,我可以通過將表單實現併發送到服務器來完成。 Thanx提前。

+0

感謝Utkanos(+1點)提出的解決方案,他建議用類命名字段,然後通過$。每個JQ函數傳遞它,但是我們可以在不依賴類或id的情況下完成此操作,只需發送整個形成?如果沒有,我們可以發送多個表單項目,如輸入名稱=「電子郵件[]」等? – 2012-07-14 12:14:38

回答

5

是的,我都可以將數據發送到服務器,並在任何情況下,它會行之有效, 例如:

$(function() { // on document load 
$('#email_form').submit(function() { // set onsubmit event to the form 
    var data = $('#email_form').serialize(); // serialize all the data in the form 
    $.ajax({ 
    url: 'testJson.php', // php script to retern json encoded string 
    data: data, // serialized data to send on server 
    dataType:'json', // set recieving type - JSON in case of a question 
    type:'POST', // set sending HTTP Request type 
    async:false, 
    success: function(data) { // callback method for further manipulations    
     for (key in data.email) { 
     alert(data.email[key]); 
     } 

    }, 
    error: function(data) { // if error occured 

    } 
    }); 
    return false; 
}); 

});

+16

這不會以json格式發送表單數據。 'dataType:json'只告訴ajax請求它預期返回的數據是json。 – 1615903 2014-11-06 12:44:39

3

可以爲AJAX請求構建動態數據,但顯然您需要知道檢索該動態數據的邏輯。你不會在你的問題中描述這個,所以在下面的例子中,我假設它是基於表單中.user_input字段的數量(可以是2,或10,或其他)。數據由字段名稱+字段值組成。

重點是顯示數據的動態收集,就這些。

var ajax_data = {}; 
$('.user_input').each(function() { 
    ajax_data[$(this).attr('name')] = $(this).val(); 
}); 
$.post('some/url.php', ajax_ata); //etc 
+0

還有一件事,如果有多個字段如name =「emial []」,我該怎麼辦?我認爲這種方法不適用於此目的。 – 2012-07-14 11:58:12

+1

正如我在回答中所說的那樣,編譯數據的方法取決於您,我無法預測這一點。我假設了一個人爲的例子,你只想收集'user_input'字段中的值。我只是簡單地表明,是的,你可以構建動態的AJAX數據。 Янерусскийноможеткажетсятак,из-замоегоюзернейм。 ЯвРоссиижилвтечении4лет。 – Utkanos 2012-07-14 12:06:15

+1

Охереть,тыАнгличанен-программист,которыйжилвроссии4года - круто=)是的,你的用戶名告訴我關於俄羅斯的概率。 – 2012-07-14 12:08:45

相關問題