Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过ajax和JQuery动态发送json格式的post表单数据_Php_Javascript_Ajax_Json - Fatal编程技术网

Php 通过ajax和JQuery动态发送json格式的post表单数据

Php 通过ajax和JQuery动态发送json格式的post表单数据,php,javascript,ajax,json,Php,Javascript,Ajax,Json,我想知道如何通过ajax和JQuery动态发送json格式的post表单数据? 例如,我在JQ中编写了如下代码: $.post("test.php", { func: "getNameAndTime" }, function(data){ alert(data.name); // John console.log(data.time); // 2pm }, "json"); 这很好,但在实时应用中,通常需要发送大量表单数据,用户可以动态更改字段,所以我

我想知道如何通过ajax和JQuery动态发送json格式的post表单数据? 例如,我在JQ中编写了如下代码:

$.post("test.php", { func: "getNameAndTime" },
    function(data){
      alert(data.name); // John
      console.log(data.time); //  2pm
    }, "json");
这很好,但在实时应用中,通常需要发送大量表单数据,用户可以动态更改字段,所以我不知道会发送多少func1、func2、func3甚至func[]。 问题是如何动态地做到这一点,在旧的AJAX世界中,我可以通过序列化表单并发送到服务器来做到这一点。
Thanx。可以为AJAX请求建立动态数据,但显然您需要了解检索动态数据的逻辑。您的问题中没有描述这一点,因此在下面的示例中,我假设它基于表单中
.user\u input
字段的数量(可以是2或10,或其他)。然后,数据由字段名+字段值组成

重点是显示数据的动态收集,仅此而已

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

是的,我可以将所有数据发送到服务器,在任何情况下,它都可以正常工作, 例如:

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

}))

还有一件事,如果有多个字段,比如name=“emial[]”,我该怎么办?我认为这种方法无法达到这个目的。正如我在回答中所说的,汇编数据的方法取决于你,我无法预测。我假设了一个人为的示例,您只想从
user\u输入
字段中收集值。我只是想说明,是的,您可以构建动态AJAX数据。Я не русский но может кажется так, из-за моего юзернейм. 是的,你的用户名告诉了我俄罗斯概率。多亏了乌特卡诺斯(+1分)对于解决方案,他建议用一个类来命名字段,然后将其传递给$。每个JQ函数,但我们可以在不依赖类或id的情况下这样做,只发送整个表单吗?如果没有,我们是否可以发送多个表单项,如input name=“email[]”等?这根本不会以json格式发送表单数据
dataType:json
只告诉ajax请求它希望返回的数据是json。