php网页中循环级联下拉框后出现重复数据怎么删除
php网页中循环级联下拉框后出现重复数据如何删除
例如:一种物料有多种样式,不同厚度的芯板,不同厚度的树脂布。
在PHP网页中利用Javascript做级联下拉框。将物料作为一个下拉框(主选),当选择其中一种物料时,如何将其对应的芯板赋于一个下拉框(衍生框1),其对应的树脂布赋于另一个下拉框(衍生框2),.我的代码如下,为何运行时会衍生框会出现重复数据?请教名位大大,这个重复数据如何删除?

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
<style type="text/css">
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
</style>
</head>
<body>
<?php
header("Content-Type: text/html; charset=gb2312");
$link = mysql_connect("localhost", "root", "12345670")
or die("Could not connect : " . mysql_error());
mysql_select_db("test") or die("Could not select database");
mysql_query("set names 'gb2312'");
$sqlSel = "select * from material ";
$result = mysql_query($sqlSel) or die("Query failed : " . mysql_error());
$forum_data = array();
while( $row = mysql_fetch_array($result) )
{
$forum_data[] = $row;
}
//print_r ($forum_data);
mysql_free_result($result);
$sqlSel2 = "select * from core left join prepreg on core.Material=prepreg.Material";
if( !($result2 = mysql_query($sqlSel2)) )
{
die('Could not query core list');
}
$forum_data2 = array();
while( $row2 = mysql_fetch_array($result2) )
{
$forum_data2[] = $row2;
}
mysql_free_result($result2);
?>
<!--************ JavaScript处理province--onChange *************-->
<script language = "JavaScript">
var onecount2;
subcat2 = new Array();
<?php
$num2 = count($forum_data2);
?>
onecount2=<?php echo $num2;?>;
<?php
for($j=0;$j<$num2;$j++)
{
?>
subcat2[<?php echo $j;?>] = new Array("<?php echo $forum_data2[$j]['Thick'];?>",<?php echo $forum_data2[$j]['Material'];?>","<?php echo $forum_data2[$j]['Core'];?>","<?php echo $forum_data2[$j]['Prepreg'];?>");
<?php }?>
function changelocation(Material)
{
document.myform.city.length = 0;
var Material=Material;
var j;
document.myform.city.options[0] = new Option('====','');
for (j=0;j < onecount2; j++)
{
if (subcat2[j][1] == Material)
{
document.myform.city.options[document.myform.city.length] = new Option(subcat2[j][2],subcat2[j][0]);
document.myform.p1.options[document.myform.p1.length] = new Option(subcat2[j][3],subcat2[j][0]);
}
}
}
function removeAllOptions(selectbox){
var i;
for(i=selectbox.options.length-1;i>=0;i--) {
selectbox.remove(i);
}
}
</script><!--********************页面表单*************************-->
<form name="myform" method="post">
<select name="bigClass" onChange="changelocation(document.myform.bigClass.options[document.myform.bigClass.selectedIndex].value)" size=1>
<option selected>Select Material</option>
<?php
$num = count($forum_data);
for($i=0;$i<$num;$i++)
{
?>
<option value="<?php echo $forum_data[$i]['Material']; ?>"><?php echo $forum_data[$i]['Material'];?></option>
<?php
}
?>
</select> <br>
<SELECT name="city" size=1 id="city">
<option value="">====</option>
</select><br>
<SELECT name="p1" size=1 id="p1">
<option value="">====</option>
</select>
</form>
</body>
</html>
------解决思路----------------------
function removeAllOptions(selectbox){
var i;
for(i=selectbox.options.length-1;i>=0;i--) {
selectbox.remove(i);
}
}
这个方法没有调用,应该选择之后,清一次,然后再把合适的数据加如options
在changelocation方法中加入:
例如:一种物料有多种样式,不同厚度的芯板,不同厚度的树脂布。
在PHP网页中利用Javascript做级联下拉框。将物料作为一个下拉框(主选),当选择其中一种物料时,如何将其对应的芯板赋于一个下拉框(衍生框1),其对应的树脂布赋于另一个下拉框(衍生框2),.我的代码如下,为何运行时会衍生框会出现重复数据?请教名位大大,这个重复数据如何删除?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
<style type="text/css">
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
</style>
</head>
<body>
<?php
header("Content-Type: text/html; charset=gb2312");
$link = mysql_connect("localhost", "root", "12345670")
or die("Could not connect : " . mysql_error());
mysql_select_db("test") or die("Could not select database");
mysql_query("set names 'gb2312'");
$sqlSel = "select * from material ";
$result = mysql_query($sqlSel) or die("Query failed : " . mysql_error());
$forum_data = array();
while( $row = mysql_fetch_array($result) )
{
$forum_data[] = $row;
}
//print_r ($forum_data);
mysql_free_result($result);
$sqlSel2 = "select * from core left join prepreg on core.Material=prepreg.Material";
if( !($result2 = mysql_query($sqlSel2)) )
{
die('Could not query core list');
}
$forum_data2 = array();
while( $row2 = mysql_fetch_array($result2) )
{
$forum_data2[] = $row2;
}
mysql_free_result($result2);
?>
<!--************ JavaScript处理province--onChange *************-->
<script language = "JavaScript">
var onecount2;
subcat2 = new Array();
<?php
$num2 = count($forum_data2);
?>
onecount2=<?php echo $num2;?>;
<?php
for($j=0;$j<$num2;$j++)
{
?>
subcat2[<?php echo $j;?>] = new Array("<?php echo $forum_data2[$j]['Thick'];?>",<?php echo $forum_data2[$j]['Material'];?>","<?php echo $forum_data2[$j]['Core'];?>","<?php echo $forum_data2[$j]['Prepreg'];?>");
<?php }?>
function changelocation(Material)
{
document.myform.city.length = 0;
var Material=Material;
var j;
document.myform.city.options[0] = new Option('====','');
for (j=0;j < onecount2; j++)
{
if (subcat2[j][1] == Material)
{
document.myform.city.options[document.myform.city.length] = new Option(subcat2[j][2],subcat2[j][0]);
document.myform.p1.options[document.myform.p1.length] = new Option(subcat2[j][3],subcat2[j][0]);
}
}
}
function removeAllOptions(selectbox){
var i;
for(i=selectbox.options.length-1;i>=0;i--) {
selectbox.remove(i);
}
}
</script><!--********************页面表单*************************-->
<form name="myform" method="post">
<select name="bigClass" onChange="changelocation(document.myform.bigClass.options[document.myform.bigClass.selectedIndex].value)" size=1>
<option selected>Select Material</option>
<?php
$num = count($forum_data);
for($i=0;$i<$num;$i++)
{
?>
<option value="<?php echo $forum_data[$i]['Material']; ?>"><?php echo $forum_data[$i]['Material'];?></option>
<?php
}
?>
</select> <br>
<SELECT name="city" size=1 id="city">
<option value="">====</option>
</select><br>
<SELECT name="p1" size=1 id="p1">
<option value="">====</option>
</select>
</form>
</body>
</html>
------解决思路----------------------
function removeAllOptions(selectbox){
var i;
for(i=selectbox.options.length-1;i>=0;i--) {
selectbox.remove(i);
}
}
这个方法没有调用,应该选择之后,清一次,然后再把合适的数据加如options
在changelocation方法中加入:
function changelocation(Material)
{
document.myform.city.length = 0;
var Material=Material;
var j;
document.myform.city.options[0] = new Option('====','');
removeAllOptions(document.myform.p1); // 加这里
for (j=0;j < onecount2; j++)
{
if (subcat2[j][1] == Material)
{
document.myform.city.options[document.myform.city.length] = new Option(subcat2[j][2],subcat2[j][0]);
document.myform.p1.options[document.myform.p1.length] = new Option(subcat2[j][3],subcat2[j][0]);
}
}
}