2012-07-29 29 views
0

我有如下聯繫人列表傳遞選擇的選項作爲數組:用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> 

謝謝

+0

你想要所有選中的複選框,然後爲他們的聯繫人? – 2012-07-29 07:13:39

+0

是的,並將數組傳遞給ajax請求 – alkhader 2012-07-29 07:14:22

+0

複選框的「值」是什麼? – 2012-07-29 07:17:33

回答

1

第一件事,第一。你有很多地方使用相同的元素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 
+0

謝謝你的回答,以及我如何將數組傳遞給Ajax請求? – alkhader 2012-07-29 07:26:32

+0

我發佈了更新 – 2012-07-29 07:29:21