我目前正在编辑一个WordPress插件,它允许您按类别过滤帖子,一旦选择了一个类别,该类别的帖子显示为小工具上的核对清单,用户可以选择他们希望显示的帖子他们的边栏/小部件区域的主题。AJAX如何处理变量的多个实例?
我已经拿到了小部件,用户可以选择他们的帖子,小部件允许选择一个帖子,但是如果选择了多个并且按下保存按钮,表单将只返回最后一个当选职位。
经过一番搜索,我发现问题是在窗体返回。 它可能与更新有关,或者AJAX处理变量的多个实例的方式。
发送到服务器的信息如下:
action save-widget
add_new
id_base single_post_super_widget
multi_number
savewidgets 9bc3d79f1c
sidebar lcp-sb
widget-height 200
widget-id single_post_super_widget-2
widget-single_post_super_widget[2][object_to_use] 5005
widget-single_post_super_widget[2][object_to_use] 4892
widget-single_post_super_widget[2][object_to_use] 4607
widget-single_post_super_widget[2][object_type] 72
widget-single_post_super_widget[2][paged] 1
widget-single_post_super_widget[2][tab] all
widget-single_post_super_widget[2][title_override]
widget-width 400
widget_number 2
凡object_to_use
是后(一个或多个)被选择。
在这里被定义发送的信息:
var theArgs = {
action: jQuery('input.widget_class:hidden', widgetDiv).first().val() + '-get-metabox',
widget: widgetDivId,
number: widgetNumber,
blog_id: jQuery(widgetInputBase + 'blog_id').val(),
object_type: jQuery(widgetInputBase + 'object_type').val(),
tab: currentTab,
paged: currentPage,
object_to_use: jQuery('input[type=checkbox][name$="[object_to_use]['+currentTab+']"]:checked', widgetDiv).first().val(),
title_override: jQuery(widgetInputBase + 'title_override').val(),
excerpt_override: jQuery(widgetInputBase + 'excerpt_override').val(),
searched: ('search' == currentTab) ? jQuery('input.quick-search', widgetDiv).first().val() : ''
};
和jQuery.post行动:
jQuery.post(
ajaxurl,
theArgs,
function(r) {
jQuery('.ajax-feedback').css('visibility', 'hidden');
if (r && r.length > 2) {
jQuery('div.widget-content', widgetDiv).html(r);
}
}
);
关于这个问题,widget-single_post_super_widget[2][object_to_use]
被张贴多次,我们如何处理AJAX这个?每个帖子/变量是否必须是唯一的?
在post中发送数组时,它的名字应该像“name []”,例如'var postData = {'ids []':idArray}'。检查这进一步的细节'http:// stackoverflow.com/questions/299610 /如何,我发送数组到php通过ajax' – sakhunzai 2012-03-21 15:30:07
@sakhunzai'object_to_use'已被重命名为包含方括号,现在似乎都在工作。谢谢 – 2012-03-21 15:47:41