如何在jQuery ajax请求中将多个值作为对象添加到单个参数中
How to add multiple values as an object to a single parameter in a jQuery ajax request?
当复选框被选中时,我试图将多个值添加到特定的数据参数'category_values'
。
category = []
jQuery('#rpd_filter_categ:checked').map(function() {
category.push(jQuery(this).attr('data-value'));
});
category = jQuery('#rpd_filter_categ:checked').attr('data-value');
jQuery.ajax({
type: 'POST',
url: ajaxurl,
// dataType: 'json',
traditional: true,
data: {
'action' : 'ajax_filter_listings',
'action_values' : action,
'category_values' : category,
...
},
success: ...
function ajax_filter_listings(){
$categ_array = '';
$allowed_html = array();
if (isset($_POST['category_values']) && trim($_POST['category_values']) != 'All Types' && $_POST['category_values']!=''&& $_POST['category_values']!='all' && $_POST['category_values']!='all-types'){
$taxcateg_include = sanitize_title ( wp_kses( $_POST['category_values'],$allowed_html ) );
$categ_array=array(
'taxonomy' => 'property_category',
'field' => 'slug',
'terms' => $taxcateg_include
);
}
它适用于单个选中的选项,但如果选中了两个以上的选项,则会得到:
- 无结果
- 只有第一个选项按字母顺序排列
- 最后选择
当我检查console -> request -> postData
时:
- 在值
%2C
之间添加字符 - 为第二个值创建一个新对象
我越看这个,我就越困惑。有人能给我指个方向吗?
任何帮助都非常感谢!
您的字段似乎都具有相同的id (rpd_filter_categ
),但id应该是唯一的,因此最好将其用作类名。
使用这个类,你可以得到这样的类别:
var categories = [];
jQuery('.rpd_filter_categ:checked').each(function() {
categories.push(jQuery(this).attr('data-value'));
});
jQuery.ajax({
etc...
相关文章:
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- Meteor-将选定窗体中的对象添加到集合中
- 在play2框架中向json对象添加下拉列表项
- 如何在javascript上向数组的对象添加新元素
- JSON到对象数组,并向每个对象添加项
- 如何将一个对象添加到每个对象数组中
- 向Angular作用域对象添加对象数组——TypeError
- CoffeeScript将对象添加到数组中
- 如何从Addon SDK向选项卡对象添加进度侦听器
- 使用ja将对象添加到HTML画布中
- 向通过ReST JSON调用生成的Angular Javascript对象添加方法
- 将新对象添加到本地存储
- 为什么可以'我们在函数体中为函数对象添加属性,就像在javascript中为对象文字添加属性一样
- 使用游标循环将JS对象添加到数组中
- 向调用全局javascript函数的对象添加处理程序
- 将另一个文件中的对象添加到单独文件中的阵列中
- 将对象添加到数组中
- 为新对象添加函数,将对象添加到数组中.理解困难'这'关键字
- sequelize为找到的对象添加值
- 向对象添加新方法和值,同时避免重复