Arrays 将表单输入值插入数组并保留自定义键索引

Arrays 将表单输入值插入数组并保留自定义键索引,arrays,forms,jquery,Arrays,Forms,Jquery,我正在使用一个包含如下元素的表单: <form id="post"> <div id="related_posts"> <input type="hidden" class='related' name="reladded[72]" value="12" /> <input type="hidden" class='related' name="reladded[34]" value="21" />

我正在使用一个包含如下元素的表单:

<form id="post">
   <div id="related_posts">
        <input type="hidden" class='related' name="reladded[72]" value="12" />
        <input type="hidden" class='related' name="reladded[34]" value="21" />
        <input type="hidden" class='related' name="reladded[46]" value="33" />
   <div>
</form>
然后将其序列化并保存到数据库中

如何使用JQuery从这些字段中收集相同的元素并将它们转换为序列化数组,以便通过AJAX POST提交

我已经介绍了所有AJAX代码,但是我还不能迭代元素来收集正确的数组值表单中还有其他元素,但我只想提交这些元素。

我曾尝试过以下方法,但均无效:

var serialrel = $('#post input:hidden[name="reladded"]').serialize();

请帮忙

可以在表单元素上使用
.serialize()

$("#post").serialize();

下面是我的想法,以获得如上所述的格式化数组:

reladded = new Array();
jQuery("#related-posts").find('input.related').each(function() {
    jQuery.each(this.attributes, function(i, attrib){
     var name = attrib.name;
     var value = attrib.value;
     if( name=='name' ){
         arrayNameAndKey = value; //get 'reladded[*]' (key for array)    
    }
     if( name=='value' ){
        arrayValue = value; //get input value
     }
    });
    //add entry to 'reladded' array from name attr. and input values
    eval(arrayNameAndKey +"='"+arrayValue+"'");
}); 
在我通过AJAX提交数组之后,我必须删除javascript添加的所有未定义的数组值。以下是我使用的代码:

<?php
    $related = $_POST['reladded'];
    //clean javascript crud
    if(is_array($related)){
            foreach($related as $key=>$value){
        if($value=="undefined")
        unset($related[$key]);
    }
?>

当然可以用更优雅的方式来做这件事

注意-我实际上不需要在JQuery中序列化数组,因为我只是用AJAX将它传递给PHP。我在那里做了序列化


我的主要目标是在检索到的数组中保留自定义键索引-这就是我想要的建议,如果可能的话,如何更轻松地完成…谢谢

.serializeArray()
可能更适合他。谢谢,但表单包含许多我不想提交的其他字段,而且据我所知,它不会保留我的自定义索引。你的建议在这种情况下不起作用。
<?php
    $related = $_POST['reladded'];
    //clean javascript crud
    if(is_array($related)){
            foreach($related as $key=>$value){
        if($value=="undefined")
        unset($related[$key]);
    }
?>