Jquery 通过Ajax发送的动态创建的JSON字符串

Jquery 通过Ajax发送的动态创建的JSON字符串,jquery,Jquery,我有一个表单,希望通过AJAX以JSON格式将数据发送到我的PHP文件中。 我使用jQuery来处理所有事件 我现在陷入困境,花了几个小时试图找到一条路 我的数据字符串现在看起来如下所示: search={name:$('#name').val(),group:$('#group').val()} 但我现在已经决定,如果字段中实际设置了值,我只希望字段发送过来。因此,我创建了以下部分: $('#search_form input[type=text]').each(function(n,elem

我有一个表单,希望通过AJAX以JSON格式将数据发送到我的PHP文件中。 我使用jQuery来处理所有事件

我现在陷入困境,花了几个小时试图找到一条路

我的数据字符串现在看起来如下所示:

search={name:$('#name').val(),group:$('#group').val()}

但我现在已经决定,如果字段中实际设置了值,我只希望字段发送过来。因此,我创建了以下部分:

$('#search_form input[type=text]').each(function(n,element){
  if ($(element).val() != '') 
  {
    search_fields = {test :$('#'+element.id).val()};
  }
});

现在,我想用输入字段名替换表示test的部分,然后将值放在它旁边。我希望我解释得对。我怎样才能做到这一点?因为它最多可以有3个输入字段,如果它们有值,我希望它们自己添加它们,或者忽略它们。有什么提示吗?

看看这个问题:


我想您应该考虑使用JQuery的.serialize()或.param()来简化将值转换为JSON的过程。看看这个问题:


我想您应该考虑使用JQuery的.serialize()或.param()来简化将值转换为JSON的过程

var search = [];
$('#search_form input[type=text]').each(function(){
    search.push({name: $(this).attr("name"), value: $(this).val()});
});
因此,使用
JSON.stringify()
函数将其编码为
JSON
string
如果您使用此解决方案,您不需要在
PHP
端使用
get\u object\u vars
,您应该使用

var search = [];
$('#search_form input[type=text]').each(function(){
    search.push({name: $(this).attr("name"), value: $(this).val()});
});
因此,使用
JSON.stringify()
函数将其编码为
JSON
string 如果使用此解决方案,则不需要在
PHP
端使用
get\u object\u vars

您听说过jQuery中的吗

$("#search_form").serialize();
您听说过jQuery中的吗

$("#search_form").serialize();
一个简单的例子:

$.ajax({
    type: 'POST',
    url: http://example.com,
    data: $('form').serialize()
});
一个简单的例子:

$.ajax({
    type: 'POST',
    url: http://example.com,
    data: $('form').serialize()
});

是的,但是所有表单字段都是空值发送的,或者我错了吗?不幸的是,您必须在发布后对其进行解析:/是的,但是所有表单字段都是空值发送的,或者我错了吗?不幸的是,您必须在发布后对其进行解析:/这似乎可行。非常感谢您的解决方案!!我希望现在能解决这个问题。再次感谢。这似乎有效。非常感谢您的解决方案!!我希望现在能解决这个问题。再次感谢。