我有2个php页面,Page1包含(html + javascript + php代码),page2只包含php代码。
所以,在page1里面,一个下拉列表包含很多值,如果我选择其中一个,那么AJAX代码就像这样得到page2.php:
如果我用下拉列表替换复选框输入,脚本可以正常工作,但在这种情况下,它不起作用。
目的是将page2的结果显示为page1上的复选框。 有什么想法吗?
page1.php中:
HTML CODE:
<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>
答案 0 :(得分:0)
您永远不会为您的复选框调用getdids
,并且一组复选框的值更复杂,以确定(非多个)选择元素的值。
从复选框组构建application / x-www-url-form编码数据的算法是:
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 "&"