2013-02-15 24 views
0

我有2個PHP頁面,Page1包含(html + javascript + php代碼),page2僅包含php代碼。在AJAX響應中返回多個複選框

所以,第1頁裏面,療法是一個下拉列表包含許多值,如果讓我選擇其中之一,Ajax代碼獲取價值,使page2.php這樣的:

如果我更換輸入複選框與下拉,該腳本完美地工作,但在這種情況下,它不起作用。

目標是將page2的結果顯示爲page1上的複選框。 有什麼想法?

page1.php中:

HTML代碼:

<select onChange="getdids(this.value)" id="groupSelect" name="groupSelect" > 
     <option value="0">xxx</option> 
      <option value="1">yyy</option> 
      <option value="2">zzz</option> 
      <option value="3">vvv</option> 
    </select> 

    <input type="checkbox" id="alldids" name="alldids" value="0">did<br> 

Ajax代碼:

<script> 
    function getdids(str) 
    { 
    if (str=="") 
     { 
     document.getElementById("alldids").innerHTML=""; 
     return; 
     } 
    if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp=new XMLHttpRequest(); 
    } 
    else 
    {// code for IE6, IE5 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xmlhttp.onreadystatechange=function() 
    { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) 
     { 
     document.getElementById("alldids").innerHTML=xmlhttp.responseText; 
     } 
    } 
    xmlhttp.open("GET","page1.php?groupName="+str,true); 
    xmlhttp.send(); 
} 


</script> 

使page2.php:

PHP代碼:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>Get dids</title> 
    </head> 

    <?php 
    require_once('../functions.php'); 
    include('../variables.php'); 
    $didGrpName=$_GET['groupName']; 
    $didGrpId=GroupId($table_groups,$didGrpName); 
    $x=array(); 
    $x=showDidOfGroup($didGrpId); 

    $i=1; 
    while($i <= $x[$i]){ ?> 
    <input type="checkbox" value="<?php echo $x[$i]; ?>"><?php echo $x[$i]; ?><br> 
    <?php $i++; } ?> 

    <body> 
    </body> 
    </html> 
+2

使用jQuery而不是.. – 2013-02-15 14:27:22

+0

這看起來像它應該工作。什麼是問題?什麼部分不起作用? – Husman 2013-02-15 14:34:09

+0

我看不到第1頁的複選框 – louk 2013-02-15 14:41:04

回答

0

您從未爲您的複選框調用getdids,並且一組複選框的值更難以確定(非多重)select元素的值。

的算法從一個複選框組構建應用程序/ x-WWW-URL形式編碼的數據是:

Create an empty array 
For each "checkbox" in "group of checkboxes with same name": 
    if checkbox.checked: 
     append encodeURIComponent(name) + "=" + encodeURIComponent(checkbox.value) to array 
JOIN array with "&" 
+0

對我來說這不是太清楚,我只需要在page1上顯示page2的結果作爲複選框,page2的結果是一個包含Mysql響應的數組。 – louk 2013-02-15 14:51:42