Javascript 在特定索引中填充JS数组

Javascript 在特定索引中填充JS数组,javascript,jquery,ajax,Javascript,Jquery,Ajax,您好,这听起来可能很奇怪,但假设我目前正在这样做: var post_data = $('input[name="checks[]"]:checked').map(function() { return this.value; }).get(); 将多个复选框的内容放入一个数组中,通过AJAX发送。现在我真正想做的是以一种特定的方式构造post_数据 我希望复选框的值存储在与其值匹配的数组位置。我希望这是有道理的:S 假设我的复选框值为: 1,5,3,7

您好,这听起来可能很奇怪,但假设我目前正在这样做:

 var post_data  = $('input[name="checks[]"]:checked').map(function() {
         return this.value;
        }).get();
将多个复选框的内容放入一个数组中,通过AJAX发送。现在我真正想做的是以一种特定的方式构造post_数据

我希望复选框的值存储在与其值匹配的数组位置。我希望这是有道理的:S

假设我的复选框值为:

1,5,3,7

我希望post_数据的结构如下:

post_数据[1]=1
post_数据[5]=5等

忽略这个事实,这可能看起来很愚蠢,有人能帮我吗,我现在正在挣扎。这是我一直在尝试的,但我的知识越来越少:

编辑更新:(代码进度)


非常感谢,

你很接近了<代码>值是一个字符串。你想要一个号码。使用
parseInt()
将该字符串转换为数字:

post_data[parseInt(value)] = value;

您应该将
post_数据
初始化为对象

var post_data = {};

这里有一个

我想提出一个使用HTML和serialize()的解决方案。如果使用名称中的数组编号构造每个复选框,则将得到所需的结果

<input type="checkbox" name="checkbox[3]" value="3" class="retain_array_value_checkbox" />
<input type="checkbox" name="checkbox[5]" value="5" class="retain_array_value_checkbox" />
<input type="checkbox" name="checkbox[1]" value="1" class="retain_array_value_checkbox" />

我不能测试这个,但它应该能工作。简单明了:)

您是否可以将其作为
checks[]=1和checks[]=3和checks[]=5等格式发送,并将其处理为服务器上所需的格式?这似乎是一种更为正常的操作模式。好吧,我做了此更改,但目前阵列似乎没有发布It’谢谢你帮助我。用代码更新。@buymypies听起来像个新问题。请把这个问题留给一个问题,而不是一个正在进行的帮助论坛。@buymypies不必担心,只需根据网站的指导原则推荐最好的方法,这样你的问题(保留为历史)就可能以最好的方式帮助其他用户。我不太明白,我对这种东西一点经验都没有;(我以前没有使用过serialize,我可以这样使用:
$.post('search\u item.php',{'data:serialized\u data,…。
?是的,它是通过数据选项传递的[文档提供了一些示例。当前post_数据只是空的。我用我正在尝试的内容更新了我的代码。您需要使用类名来获取所有:选中的元素,并用相应的数字填充名称属性。
<input type="checkbox" name="checkbox[3]" value="3" class="retain_array_value_checkbox" />
<input type="checkbox" name="checkbox[5]" value="5" class="retain_array_value_checkbox" />
<input type="checkbox" name="checkbox[1]" value="1" class="retain_array_value_checkbox" />
var post_data  = $('input.retain_array_value_checkbox:checked').serialize();