动态创建的JSON String通过Ajax发送

时间:2012-02-02 17:19:31

标签: jquery

我有一个表单,想要通过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()};
  }
});

我现在想用输入字段名称替换它所说的测试部分,而不是让它旁边的值。我希望我解释得对。我怎么能这样做?因为它最多可以有3个输入字段,我希望它们在有值的情况下自行添加或者将它们遗漏。任何提示?

4 个答案:

答案 0 :(得分:1)

看看这个问题:

Convert form data to JavaScript object with jQuery

我想你会想看看使用JQuery的.serialize()或.param()来简化你将表单值转换为JSON

答案 1 :(得分:1)

你应该使用像

这样的东西
var search = [];
$('#search_form input[type=text]').each(function(){
    search.push({name: $(this).attr("name"), value: $(this).val()});
});

所以使用JSON.stringify()函数将其编码为JSON字符串 如果您使用此解决方案,则无需在get_object_vars

上使用PHP

答案 2 :(得分:1)

您是否听说过jQuery中的serialize function

$("#search_form").serialize();

答案 3 :(得分:0)

一个简单的例子:

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