我用的网上的联动菜单,如果我把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>

解决方案 »

  1.   

    在if(!isset($_SESSION["ID"])){ 之前用print_r($_POST);查看提交內容
      

  2.   

    11.php<?php 
    $aid=$_REQUEST['bigclassid'];
    echo("aid".$aid);
    $sid=$_REQUEST['smallclassid'];
    echo("sid".$sid);
    ?>
      

  3.   

    2楼的兄弟,
    我在你说的之前加了句
    print_r($_POST);
    然后 结果 Array ( )
    是这个,不知道你具体的意思,请明示一下呢
      

  4.   

    自己过滤一下问题,弄个简单例子出来(别人copy到本地就能运行那种),或许你自己就能解决问题了
      

  5.   

    我的这个就是可以运行的啊,去掉session就可以了,下载的都是没有session的
      

  6.   

    =======================================================================================================================================
    你的代码在你的环境下当然运行成功了,要是把你的例子copy到我们本地呢?
    我意思是说你把问题过滤一下,自己整一个不依赖数据库的简单例子,让大家copy你给的代码,在本地都能运行。
    说不定经过你对问题的过滤,问题也就解决了。see?
      

  7.   

    在你的提交頁11.php開頭加print_r($_POST),查看下提交內容,你是提交到11.php,而你沒帖出這個文件的內容,具體不清楚你怎麼處理的
      

  8.   

    我上面放了11.php的内容的啊
      

  9.   

    <form action="11.php" method="post" enctype="multipart/form-data" name="addinfoform" onSubmit="return CheckForm();"> 
    把enctype="multipart/form-data"刪掉,以普通的form提交