
本文介绍如何使用 jquery 的 `serializearray()` 和 `$.param()` 配合数组操作,将多个同名复选框(如 `name="product-category"`)的选中值合并为单个逗号分隔字符串(如 `product-category=29,27`),而非默认的重复键格式(`product-category=29&product-category=27`)。
在 Web 表单中,当多个复选框共享相同的 name 属性(例如 name="product-category")时,jQuery 的 .serialize() 方法会按标准 URL 编码规则生成多个同名参数,如 product-category=29&product-category=27。但后端(尤其是 PHP)通常期望接收单一参数值(如 product-category=29,27),便于用 explode(',', $_POST['product-category']) 统一解析。
解决思路是:绕过 .serialize() 的默认行为,改用 .serializeArray() 获取结构化数据,手动聚合目标字段值,再通过 $.param() 重新序列化。该方案健壮、可扩展,且不依赖 HTML 结构硬编码。
以下是优化后的完整 JavaScript 实现:









