2011-07-18 52 views
2

我有一個PHP函數這樣如何檢查複選框數組的內容之前提交

function printSelectedMembers($id) { 

    $full_name = $this->getUserName($id); 
    echo '<dl>'; 
    echo '<dt><label for="event_show">Selected member :</label></dt>'; 
    echo '<input type="checkbox" name="pvtContacts[]" checked="checked" value="'.$id.'"/>'.$full_name; 
    echo '</dl>'; 
} 

在此我想刪除的條目,如果該成員已經是複選框陣列(pvtContacts [])英寸如何在提交表單之前檢查數組的內容?

+0

腓不能檢查submiting之前提交值。你需要使用客戶端JavaScript。 – ynh

+0

你的問題還不清楚。爲什麼不在創建html代碼之前測試成員是否在數組中?通過提交,您的意思是將html發送給客戶端還是您的客戶提交表單(即按下提交按鈕)? –

+0

@Martin如果成員仍在陣列中,我想刪除該成員。實際上,它是一個AJAX響應表單,用戶可以在提交表單之前選擇所選的成員。所以如果他錯誤地選擇了一個用戶,他必須能夠刪除他。但在我的情況下,會員再次被選中!我正在使用onchange()事件。 – Nitish

回答

2

在註釋中,您不能使用php檢查字段,因爲它們在提交表單後進行檢查,但是您可以使用javascript檢查複選框是否已選中。

<script type="text/javascript"> 
function checkForm(form) { 
    for (i=0; i<form.elements['pvtContacts[]'].length; i++) { 
     // this is where you start the checks or altering the form 
     // remove (but you have to setup an unique id for each field): 
     // var thisId = document.getElementById(form.elements['pvtContacts[]'][i].id); 
     // thisId.parentNode.removeChild(thisId); 
     if (form.elements['pvtContacts[]'][i].checked != true) { 
      // no all checkboxes are checked 
      return false; 
     } 
    } 
    return true; 
} 
</script> 

可以修改功能改變/刪除一些零件...