เก็บผลจากการเลือกใน combo ไว้ใน session
จากที่เคยถามเรื่อง combo สองชั้น สามารถทำได้แล้ว นะคะ แต่ตอนนี้ต้องการเก็บข้อมูลที่ select จาก combo ทั้งสองอันไว้ใน session เพื่อนำไปใช้ในฟอร์มอื่นค่ะ 
 
ตอนนี้ สามารถเก็บข้อมูลจาก combo ตัวแรกแล้ว คือ $_SESSION["dbID"]='$database';(ที่หน้า list.php)
 
อยากจะช่วยรบกวนให้ดูหน่อยได้มั้ยคะว่า จะเอาข้อมูลที่ select จาก combo ตัวที่สองจากตรงไหนคะ
 
นี่เปนโค้ดค่ะ
หน้าที่แสดงคอมโบ
                           
        ตอนนี้ สามารถเก็บข้อมูลจาก combo ตัวแรกแล้ว คือ $_SESSION["dbID"]='$database';(ที่หน้า list.php)
อยากจะช่วยรบกวนให้ดูหน่อยได้มั้ยคะว่า จะเอาข้อมูลที่ select จาก combo ตัวที่สองจากตรงไหนคะ
นี่เปนโค้ดค่ะ
หน้าที่แสดงคอมโบ
<?php    
  //ค่าที่ได้รับมาจากการ Submit
  $database = $_POST[database];
  $exercise = $_POST[exercise];
  if ( !empty( $exercise ) )
  {
  echo "<br /><br />ค่าที่ได้จากการ Submit คือ :<br /<br />ฐานข้อมูลที่เลือก : $database<br />แบบฝึกหัดที่เลือก : $exercise<br /><br /><br />\n";
  };
  echo "<form action='?' method='post'>";
  echo "<span id='databaseDiv'>";
  echo "<label for='database'>ฐานข้อมูล :</label><select id='database'>";
  echo "<option value='$database'>--------------</option>" ;
  echo "</select></span>";
  echo "<span id='exerciseDiv'>";
  echo "<label for='exercise'>ชุดแบบฝึกหัด :</label><select id='exercise'>";
  echo "<option value='$exercise'>--------------</option>" ;
  echo "</select></span>";
  echo "<br /><br /><input type='submit' value='Submit' name='submit' />";
  echo "</form>";
 ?>
 <script type="text/javascript">
 //AJAX
 function Inint_AJAX()
 {
  try
  {
  return new ActiveXObject( "Msxml2.XMLHTTP" );
  }
  catch ( e )
  {
  };
  try
  {
  return new ActiveXObject( "Microsoft.XMLHTTP" );
  }
  catch ( e )
  {
  };
  try
  {
  return new XMLHttpRequest();
  }
  catch ( e )
  {
  };
  alert( "XMLHttpRequest not supported" );
  return null;
 };
 function dochange( obj )
 {
  var req = Inint_AJAX();
  // เปิดหน้าเว็บครั้งแรก โหลด database
  if ( obj=='init' )
  {
  var data = "database=init";
  req.onreadystatechange = function()
  {
  if ( req.readyState == 4 )
  {
  if ( req.status == 200 )
  {
  //alert(req.responseText);
  document.getElementById( 'databaseDiv' ).innerHTML = req.responseText;
  };
  };
  };
  req.open( "post" , "list.php" , true ); //สร้าง connection
  req.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" ); // set Header
  req.send( data ); //ส่งค่า
  }
  // เลือก database โหลด exercise
  else if ( obj=='database' ) 
  {
  var database = document.getElementById('database').value;
  var data = "database=" + database;
  req.onreadystatechange = function()
  {
  if ( req.readyState == 4 )
  {
  if ( req.status == 200 )
  {
  //alert(req.responseText);
  document.getElementById( 'exerciseDiv' ).innerHTML = req.responseText;
  };
  };
  };
  req.open( "post" , "list.php" , true ); //สร้าง connection
  req.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" ); // set Header
  req.send( data ); //ส่งค่า
  }
 };
 //โหลดครั้งแรก
 window.onload = function()
 {
  dochange('init');
 };
 </script>
 
หน้า list.php
               
   หน้า list.php
<?php
  session_start();
  header( "Expires: Sat, 1 Jan 2005 00:00:00 GMT" );
  header( "Last-Modified: ".gmdate( "D, d M Y H:i:s" )."GMT" );
  header( "Cache-Control: no-cache, must-revalidate" );
  header( "Pragma: no-cache" );
  header( "content-type: application/x-javascript; charset=UTF-8" );
  $database = $_POST['database'];
  $proID=$_SESSION[username];
  $hostname_conn = "localhost";
  $username_conn = "root";
  $password_conn = "1234";
  $database_conn = "myproject";
  mysql_connect( $hostname_conn , $username_conn , $password_conn ) or die( "เชื่อมต่อฐานข้อมูลไม่ได้" );
  mysql_select_db( $database_conn ) or die( "เลือกฐานข้อมูลไม่ได้" ); // เลือกฐานข้อมูล
  // เปิดเว็บครั้งแรก โหลด database
  if($database == 'init')
  {
  $sql = "SELECT dbID, dbName FROM database_info WHERE proID='$proID'";
  $result = mysql_query( $sql );
  $ajax_result = "<label for='database'>ฐานข้อมูล :</label>";
  $ajax_result .= "<select id='database' onchange=\"dochange('database');\">";
  $ajax_result .= "<option value='0'>------กรุณาเลือกฐานข้อมูล------</option>";
  while( $fetcharr = mysql_fetch_array( $result ) )
  { 
  $id = $fetcharr['dbID'];
  $name = $fetcharr['dbName'];
  $ajax_result .= "<option value='$id'>$name</option>";
  }
  $ajax_result .= "</select>";
  }
  // เลือก database โหลด exercise
  else
  {
  $sql = "SELECT setID FROM exercise_set WHERE dbID='$database'";
  $result = mysql_query( $sql );
  $ajax_result = "<label for='exercise'>ชุดแบบฝึกหัด :</label>";
  $ajax_result .= "<select id='exercise'>";
  $ajax_result .= "<option value='0'>-------กรุณาเลือกชุดแบบฝึกหัด------</option>";
  while( $fetcharr = mysql_fetch_array( $result ) )
  { 
  $id = $fetcharr['setID'];
  $name = $fetcharr['setID'];
  $ajax_result .= "<option value='$id'";
  if ( $database == $id )
  {
  $ajax_result .= " selected='selected'";
  }
  $ajax_result .= ">แบบฝึกหัดชุดที่ $name</option>";
  }
  $ajax_result .= "</select>";
  }
  mysql_close();
  echo $ajax_result;
 ?>
 
            
โค้ดก็มีคำอธิบายอยู่แล้วนี่ครับ ค่าแรกเก็บ $database ไป ค่าที่สองก็มีแค่ $exercise เท่านั้นที่ยังไม่ได้เก็บ