2013-03-05 38 views
0

我已經編寫了由ajax發送名稱和角色的代碼,通過ajax,名稱發送成功,但複選框在選擇多於2個角色時不發送。如何通過複選框發送多個值

Ajax代碼

var HttPRequest = false; 

    function doCallAjax(Mode,Page,ID) { 
     HttPRequest = false; 
     if (window.XMLHttpRequest) { // Mozilla, Safari,... 
     HttPRequest = new XMLHttpRequest(); 
     if (HttPRequest.overrideMimeType) { 
      HttPRequest.overrideMimeType('text/html'); 
     } 
     } else if (window.ActiveXObject) { // IE 
     try { 
      HttPRequest = new ActiveXObject("Msxml2.XMLHTTP"); 
     } catch (e) { 
      try { 
       HttPRequest = new ActiveXObject("Microsoft.XMLHTTP"); 
      } catch (e) {} 
     } 
     } 

     if (!HttPRequest) { 
     alert('Cannot create XMLHTTP instance'); 
     return false; 
     } 

     var url = 'AjaxRolesPermRecord.php'; 
     var pmeters = "troles_Name=" + encodeURI(document.getElementById("roles_Name").value) + 
        "&tper=" + encodeURI(document.getElementById("per").value) + 
        '&myPage='+Page + 
        "&tID=" + ID + 
        "&tMode=" + Mode; 

     HttPRequest.open('POST',url,true); 

     HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
     HttPRequest.setRequestHeader("Content-length", pmeters.length); 
     HttPRequest.setRequestHeader("Connection", "close"); 
     HttPRequest.send(pmeters); 


     HttPRequest.onreadystatechange = function() 
     { 

      if(HttPRequest.readyState == 3) // Loading Request 
       { 
       document.getElementById("mySpan").innerHTML = "load ..."; 
       } 

      if(HttPRequest.readyState == 4) // Return Request 
       { 
       document.getElementById("mySpan").innerHTML = HttPRequest.responseText; 
       } 

     } 

    } 

,我得到它的其他頁面上這樣

foreach($selected as $key=>$val) 
{ 
    $SqlInsertIntotable = mysql_query("INSERT INTO permissions_roles (id,permission_id,role_id) 
             value ('','".$val."','".$RoleID."')"); 
} 

問題是

Invalid argument supplied for foreach() 
+1

$選擇的問題是缺少或empty..can't找到其他的任何地方你的代碼? – Oli 2013-03-05 23:44:34

+0

@Oli我在php頁面上得到這個'$ selected = $ _POST [「tper」]; ' – 2013-03-05 23:54:13

+0

在'var pmeters'後面添加一個警報(pmeters),並檢查是否所有數據填入 – Oli 2013-03-06 00:01:01

回答

0

就像是一個數組定義的checkboxs? 例如:

<input type="checkbox" name="selected[]"> 
+0

我怎樣才能通過數組定義它並獲取它php頁面 – 2013-03-05 23:56:33

+0

' – vcampitelli 2013-03-05 23:57:38

+0

2013-03-05 23:58:43

相關問題