2

我徘徊如何通过 ajax 和 JQuery 动态发送 json 格式的表单数据?例如,我在 JQ 中编写了这样的代码:

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

这很好,但是在实时应用程序中经常需要发送巨大的表单数据并且用户可以动态更改字段,所以我不知道会发送多少个func1,func2,func3甚至func[]。q 是如何动态地执行此操作,在 AJAX 的旧世界中,我可以通过将表单发送到服务器来完成它。提前谢谢。

4

2 回答 2

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;
});

});

于 2012-07-14T15:53:07.960 回答
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
于 2012-07-14T10:56:49.577 回答