ใช้งาน Combobox 2 ตัวที่สัมพันธ์กัน (Javascript)

  โค้ดเป็นการแสดงรายการใน Combobox 2 ตัวที่สัมพันธ์กัน โดยครั้งแรกเมื่อเรียกหน้ามาแสดง จะไปอ่านข้อมูล สายงาน มาแสดง จากตาราง class_tb ลงใน Combobox ชื่อ class ซึ่งเมื่อ user ทำการเลือกสายงานใน Combobox ตัวนี้ จะเกิด event onChange ไปเรียกฟังก์ชั่นของ Javascript ชื่อ class_select มาทำงานโดยการส่งค่า value ไปพร้อมกับ function ด้วย โดยที่ในฟังก์ชั่น class_select จะไปเรียกหน้านี้มาทำงานอีกครั้งโดยส่งค่า classid ที่เลือก ไปด้วย ซึ่งในการส่งไปครั้งที่ 2 ตัวแปร $_GET[classid] จะมีค่า ซึ่งจะไปทำให้เกิดการเรียก รายการ ประเภทของสื่อ มาแสดงต่อไป

<?
  $ServerName="localhost";
  $UserName="root"; // กำหนด User ของ MySQL
  $UserPassword=""; // กำหนดรหัสผ่านของ MySQL
  $DatabaseName="mydb"; // กำหนดชื่อ Database
  
  //สร้าง Connection ติดต่อกับ MySQL Server เก็บไว้ที่ตัวแปร $conn
  $conn = mysql_connect($ServerName, $UserName, $UserPassword);
  if (!$conn) die("ไม่สามารถติดต่อกับ MySQL ได้");
  mysql_query("SET NAMES tis620");
  
  //เลือกใช้งานฐานข้อมูลที่กำหนดไว้ที่ตัวแปร $DatabaseName
  mysql_select_db($DatabaseName, $conn) or die("ไม่สามารถเลือกใช้งานฐานข้อมูล $DatabaseName ได้");
  
  //ค่าที่ส่งมาเมื่อเลือกสายงาน
  $classid=$_GET[classid];

  //แสดงรายการ สายงาน
  $select_class="select * from class_tb order by class_id ";
  $query_class = mysql_query($select_class, $conn);

  echo "<select name=class onChange='class_select(this.value)'>";
  echo "<option>- เลือกสายงาน -</option> ";
  while ($rs_class = mysql_fetch_array($query_class)) {
    $class_id=$rs_class[class_id];
    $class_name=$rs_class[class_name];
    echo "<option value='$class_id'";
    if ($class_id==$classid) echo " selected"; //เลือกรายการที่ส่งมา
    echo ">$class_name</option> ";
  }
  echo "</select>";

  //แสดงรายการ ประเภทของสื่อ
  if ($classid!='') { //มีการส่ง $classid มาด้วย
    $select_line="select * from news_line_tb where class_id=$classid ";
    $query_line = mysql_query($select_line,$conn);

    echo "<select name=news_line>";
    echo "<option>- เลือกประเภทของสื่อ -</option> ";
    while ($rs_line = mysql_fetch_array($query_line)) {
      $newsl_id=$rs_line[newsl_id];
      $newsl_name=$rs_line[newsl_name];
      $class_id_newsl=$rs_line[class_id];
      echo "<option value='$newsl_id'>$newsl_name</option> ";
    }
    echo "</select>";
  }
?>
<script language=Javascript>
//เมื่อเลือก สายงาน
function class_select(id) {
  document.URL='?classid='+id;
}
</script>
ผู้เขียน goragod โพสต์เมื่อ 31 มี.ค. 2551 เปิดดู 16,586 ป้ายกำกับ PHPJavascriptForm
^