使用ajax将所选选项作为数组传递

时间:2012-07-29 06:53:59

标签: javascript ajax

我的联系人列表如下:

<div class="contacts_list_data_contacts" id="contactlist">
<div class="contacts_checkbox_01"><input name="contact_id[]" id="contact_id" type="checkbox"  value="28383" style="margin-top:0px ; margin-left:-3px;" /></div>
<div class="contacts_firstname_01_contacts">Michael</div>                                 
<div class="ncontacts_mobile_nmbr_01">+44515665544</div>
</div>

<div class="contacts_list_data_contacts" id="contactlist">
<div class="contacts_checkbox_01"><input name="contact_id[]" id="contact_id" type="checkbox"  value="28383" style="margin-top:0px ; margin-left:-3px;" /></div>
<div class="contacts_firstname_01_contacts">Katherine</div>                                 
<div class="ncontacts_mobile_nmbr_01">+30589746621</div>
</div>

看起来像是:

Firstname     MobileNumber
===========================
Michael       +44515665544
Katherine     +30589746621          

我正在使用ajax请求删除联系人

contact_id=document.getElementById('contact_id_ajax').value;
    xmlHttp.open("POST","?action=ajaxcontact&todo=DeleteContact&contact_id=" +contact_id ,true);

使用以下功能,我只能通过复选框一次获得一个联系人。当我选择所有联系人并将其传递给ajax请求时,我不知道如何传递所有联系人。

<Script>
var field;
        function get_contact(field)
        {
            for (i = 0; i < field.length; i++)

            if(field[i].checked)
             document.getElementById("contact_id_ajax").value=field[i].value;
        }
</Script>

谢谢,

1 个答案:

答案 0 :(得分:1)

首先,首先。您有很多地方对元素使用相同的ID。这确实是非常糟糕的做法。如果您想要一种识别类似项目集合的方法,请使用类(您已经拥有 - 只需删除ID或获取唯一的ID)。

现在,如果您在复选框中添加一个类,那么 -

<input name="contact_id[]" class="contact_id" type="checkbox"  value="28383" style="margin-top:0px ; margin-left:-3px;" />

然后在getContacts函数中,您可以跳过参数并使用 -

function getContacts(){
    var contacts = document.getElementByClassName('contact_id'), ids = [];
    for (var i = 0; i < contacts.length; i += 1){
        if (contacts[i].checked)
             ids.push(contacts[i].value);
    }
    return ids;
}

现在,当您想要联系人列表时 -

var contacts = getContacts(); //array of contact ids
//This array can now be used in your ajax request