我有一个表单,想要通过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个输入字段,我希望它们在有值的情况下自行添加或者将它们遗漏。任何提示?
答案 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()
});