我用的网上的联动菜单,如果我把session去掉,提交的大类小类id都正常,加上session就只能取到大类id,小类就是空,为啥呀
我把代码发来看看哈,超级奇怪,我想了很久没想明白,哪位同志可以帮忙不啊>
这个是session
<?php
session_start();
if(!isset($_SESSION["ID"])){
if($_SESSION["ID"]<=0){
echo "<script>alert('请合法使用本站资源,谢谢配合');window.location=\"login.php\";</script>"; //header("Location:$url");
}}
if(!isset($_SESSION["nickname"])||($_SESSION["nickname"]=="")){
echo "<script>alert('请合法使用本站资源,谢谢配合');window.location=\"login.php\";</script>";
这个是联动菜单
<form action="11.php" method="post" enctype="multipart/form-data" name="addinfoform" onSubmit="return CheckForm();"> <td height="24" align="right" bgcolor="#FFFFEE"><font color="#FF0000">*</font><span class="STYLE2">信息类别:</span></td>
<td valign="top" bgcolor="#FFFFEE">
<?php
$query1=mysql_query("select BID,Bname from bigclassmenu order by BID asc");
$fMenu="";
$fValue="";
while($data1=mysql_fetch_array($query1)){
$fMenu.="\"".$data1[Bname]."\",";
$fValue.="\"".$data1[BID]."\",";
}
$fMenu=substr($fMenu,0,(strlen($fMenu)-1));
$fMenu="[".$fMenu."]";//*****************************得到var fMenu
$fValue=substr($fValue,0,(strlen($fValue)-1));
$fValue="[".$fValue."]";//*****************************得到var fValue
//得到*****************************var sMenu
$query1=mysql_query("select BID,Bname from bigclassmenu order by BID asc");
while($data1=mysql_fetch_array($query1)){
$province_id1=$data1[BID];
$query2=mysql_query("select SName,SID from smallclassmenu where parentid='$province_id1' order by parentid desc"); while($data2=mysql_fetch_array($query2)){
$num=mysql_num_rows($query2);
$i++;
$sMenu.="\"".$data2[SName]."\",";
if($i==$num){
$sMenu="[".$sMenu."],[";
$i=0;
}
}
}
$sMenu.="]";
$sMenu=str_replace("\",]","\"]",$sMenu);
$sMenu=str_replace(",[]","]",$sMenu);
if((substr($sMenu,0,2))=="[\""){
$sMenu="[".$sMenu;
}else{
$sMenu=preg_replace("/\[{3,}/is","[[\\1",$sMenu);//匹配
}
//得到*****************************var sValue
$query1=mysql_query("select BID,BName from bigclassmenu order by BID asc");
//echo($query1);
//exit();
while($data1=mysql_fetch_array($query1)){
$province_id=$data1[BID];
$sql="select * from smallclassmenu where parentid='$province_id' order by parentid asc";
// echo $sql;
$query2=mysql_query($sql);
while($data2=mysql_fetch_array($query2)){
$nums=mysql_num_rows($query2);
$j++;
$sValue.="\"".$data2[SID]."\",";
if($j==$nums){
$sValue="[".$sValue."],[";
$j=0;
}
}
}
$sValue.="]";
$sValue=str_replace("\",]","\"]",$sValue);
$sValue=str_replace(",[]","]",$sValue);
if((substr($sValue,0,2))=="[\""){
$sValue="[".$sValue;
}else{
$sValue=preg_replace("/\[{3,}/is","[[\\1",$sValue);//匹配
}
?>
<div id="tar"></div>
<SCRIPT LANGUAGE="JavaScript" DEFER>
var fMenu = <?php echo $fMenu; ?>;
var fValue = <?php echo $fValue; ?>;
var sMenu = <?php echo $sMenu; ?>;
var sValue = <?php echo $sValue; ?>;
var oWhere = document.all.tar;
var ofMenu = document.createElement("<SELECT name='bigclassid'>");
var osMenu = document.createElement("<SELECT name='smallclassid'>");
with(oWhere)appendChild(ofMenu),appendChild(osMenu);
createMainOptions();
createSubOptions(0);
ofMenu.onchange = function() {createSubOptions(this.selectedIndex);};
function createMainOptions() {
for(var i=0;i<fMenu.length;i++)ofMenu.options[i] = new Option(fMenu[i],fValue[i]);
}
// alert(fMenu[15]);
function createSubOptions(j) {
with(osMenu) {
length=0;
for(var i=0;i<sMenu[j].length;i++)osMenu.options[i] = new Option(sMenu[j][i],sValue[j][i]);
//alert(document.addinfoform.smallclassid.selectedIndex);
}
}
//alert(document.addinfoform.smallclassid.value);
</SCRIPT> <script language="javascript" defer="defer">
</script>
<input type="Submit" name="Submit" value="提交" class="input">
</td></form>
我把代码发来看看哈,超级奇怪,我想了很久没想明白,哪位同志可以帮忙不啊>
这个是session
<?php
session_start();
if(!isset($_SESSION["ID"])){
if($_SESSION["ID"]<=0){
echo "<script>alert('请合法使用本站资源,谢谢配合');window.location=\"login.php\";</script>"; //header("Location:$url");
}}
if(!isset($_SESSION["nickname"])||($_SESSION["nickname"]=="")){
echo "<script>alert('请合法使用本站资源,谢谢配合');window.location=\"login.php\";</script>";
这个是联动菜单
<form action="11.php" method="post" enctype="multipart/form-data" name="addinfoform" onSubmit="return CheckForm();"> <td height="24" align="right" bgcolor="#FFFFEE"><font color="#FF0000">*</font><span class="STYLE2">信息类别:</span></td>
<td valign="top" bgcolor="#FFFFEE">
<?php
$query1=mysql_query("select BID,Bname from bigclassmenu order by BID asc");
$fMenu="";
$fValue="";
while($data1=mysql_fetch_array($query1)){
$fMenu.="\"".$data1[Bname]."\",";
$fValue.="\"".$data1[BID]."\",";
}
$fMenu=substr($fMenu,0,(strlen($fMenu)-1));
$fMenu="[".$fMenu."]";//*****************************得到var fMenu
$fValue=substr($fValue,0,(strlen($fValue)-1));
$fValue="[".$fValue."]";//*****************************得到var fValue
//得到*****************************var sMenu
$query1=mysql_query("select BID,Bname from bigclassmenu order by BID asc");
while($data1=mysql_fetch_array($query1)){
$province_id1=$data1[BID];
$query2=mysql_query("select SName,SID from smallclassmenu where parentid='$province_id1' order by parentid desc"); while($data2=mysql_fetch_array($query2)){
$num=mysql_num_rows($query2);
$i++;
$sMenu.="\"".$data2[SName]."\",";
if($i==$num){
$sMenu="[".$sMenu."],[";
$i=0;
}
}
}
$sMenu.="]";
$sMenu=str_replace("\",]","\"]",$sMenu);
$sMenu=str_replace(",[]","]",$sMenu);
if((substr($sMenu,0,2))=="[\""){
$sMenu="[".$sMenu;
}else{
$sMenu=preg_replace("/\[{3,}/is","[[\\1",$sMenu);//匹配
}
//得到*****************************var sValue
$query1=mysql_query("select BID,BName from bigclassmenu order by BID asc");
//echo($query1);
//exit();
while($data1=mysql_fetch_array($query1)){
$province_id=$data1[BID];
$sql="select * from smallclassmenu where parentid='$province_id' order by parentid asc";
// echo $sql;
$query2=mysql_query($sql);
while($data2=mysql_fetch_array($query2)){
$nums=mysql_num_rows($query2);
$j++;
$sValue.="\"".$data2[SID]."\",";
if($j==$nums){
$sValue="[".$sValue."],[";
$j=0;
}
}
}
$sValue.="]";
$sValue=str_replace("\",]","\"]",$sValue);
$sValue=str_replace(",[]","]",$sValue);
if((substr($sValue,0,2))=="[\""){
$sValue="[".$sValue;
}else{
$sValue=preg_replace("/\[{3,}/is","[[\\1",$sValue);//匹配
}
?>
<div id="tar"></div>
<SCRIPT LANGUAGE="JavaScript" DEFER>
var fMenu = <?php echo $fMenu; ?>;
var fValue = <?php echo $fValue; ?>;
var sMenu = <?php echo $sMenu; ?>;
var sValue = <?php echo $sValue; ?>;
var oWhere = document.all.tar;
var ofMenu = document.createElement("<SELECT name='bigclassid'>");
var osMenu = document.createElement("<SELECT name='smallclassid'>");
with(oWhere)appendChild(ofMenu),appendChild(osMenu);
createMainOptions();
createSubOptions(0);
ofMenu.onchange = function() {createSubOptions(this.selectedIndex);};
function createMainOptions() {
for(var i=0;i<fMenu.length;i++)ofMenu.options[i] = new Option(fMenu[i],fValue[i]);
}
// alert(fMenu[15]);
function createSubOptions(j) {
with(osMenu) {
length=0;
for(var i=0;i<sMenu[j].length;i++)osMenu.options[i] = new Option(sMenu[j][i],sValue[j][i]);
//alert(document.addinfoform.smallclassid.selectedIndex);
}
}
//alert(document.addinfoform.smallclassid.value);
</SCRIPT> <script language="javascript" defer="defer">
</script>
<input type="Submit" name="Submit" value="提交" class="input">
</td></form>
$aid=$_REQUEST['bigclassid'];
echo("aid".$aid);
$sid=$_REQUEST['smallclassid'];
echo("sid".$sid);
?>
我在你说的之前加了句
print_r($_POST);
然后 结果 Array ( )
是这个,不知道你具体的意思,请明示一下呢
你的代码在你的环境下当然运行成功了,要是把你的例子copy到我们本地呢?
我意思是说你把问题过滤一下,自己整一个不依赖数据库的简单例子,让大家copy你给的代码,在本地都能运行。
说不定经过你对问题的过滤,问题也就解决了。see?
把enctype="multipart/form-data"刪掉,以普通的form提交