GORAGOD.com

GORAGOD.com

freelance, web developer, web designer, hosting, domain name

เก็บผลจากการเลือกใน combo ไว้ใน session

จากที่เคยถามเรื่อง combo สองชั้น สามารถทำได้แล้ว นะคะ แต่ตอนนี้ต้องการเก็บข้อมูลที่ select จาก combo ทั้งสองอันไว้ใน session เพื่อนำไปใช้ในฟอร์มอื่นค่ะ

ตอนนี้ สามารถเก็บข้อมูลจาก 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
<?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;
?>
  
11 ธ.ค. 2552 3 2,856

55+++

//ค่าที่ได้รับมาจากการ Submit
$database = $_POST[database];
$exercise = $_POST[exercise];

โค้ดก็มีคำอธิบายอยู่แล้วนี่ครับ ค่าแรกเก็บ $database ไป ค่าที่สองก็มีแค่ $exercise เท่านั้นที่ยังไม่ได้เก็บ
#1

 ถ้าเก็บจากตรงหน้านั้น มันเปนค่าว่างค่ะ ทัง้สองอันเลย 
#2

มันต้อง submit ก่อนครับ ไม่ใช่แค่เลือกเฉยๆ แล้วมันจะเก็บค่า เนื่องจาก session อยู่ฝั่ง server ดังนั้นจึงต้องให้มัน submit ก่อน เพื่อส่งค่าที่เลือกไปเก็บยัง server
#3
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 64M
^