ตัวอย่างฟังก์ชั่นต่อไปนี้ ใช้รูปแบบการเชื่อมต่อฐานข้อมูลด้วย mysqli
เป็นการฟังก์ชั่นสำหรับสร้าง select tag ที่สามารถดึงข้อมูลมาแสดง
ในรายการ option รองรับกรณีการแก้ไข
หากต้องการใช้งานกับ mysql สามารถนำไปดัดแปลงเพิ่มเติมได้
หรือสามารถประยุกต์กรณีอื่นๆ ได้ตามต้องการ
ต่อไปตัวอยางกรณีการใช้งานกับฐานข้อมูล
เราจะใช้วิธีการเชื่อมต่อแบบ mysqli แทน mysql ธรรมดา
เพื่อรองรับในอนาคต
ดาวน์โหลดไฟล์ พร้อมใช้ ชื่อ db_connect.php ได้ที่
ตัวอย่าง
ฟังก์ชั่น
<?php function SelectInput( $sql=null,$se_Name="select1",$se_Id=null,$se_Class=null,$se_Style=null, $se_text="",$se_Select=null,$filed_option=null,$field_value=null ){ global $mysqli; $se_Id=($se_Id==null)?$se_Name:$se_Id; $se_text=($se_text==null)?"กรุณาเลือกรายการ":$se_text; $tagChoose='<option value="">'.$se_text.'</option>'; $tagOption=null; if($sql!=null){ $rs=$mysqli->query($sql); $total=$rs->num_rows; while($data=$rs->fetch_assoc()){ $tagSelected=null; $filed_optionText=$data[$filed_option]; $field_valueText=($field_value==null)?$filed_optionText:$data[$field_value]; if($se_Select!=null && $field_valueText==$se_Select){ $tagSelected=" selected"; } $tagOption.='<option value="'.$field_valueText.'" '.$tagSelected.'>'.$filed_optionText.'</option>'; } } $tagSelect = <<<TAG <select name="$se_Name" id="$se_Id" class="$se_Class" style="$se_Style" > $tagChoose $tagOption </select> TAG; // บรรทัดด้านบนนี้ที่ (TAG;) นี้ต้องชิดซ้ายสุด ห้ามมีช่องว่างทั้งหน้าและหลัง echo $tagSelect; } ?>
การใช้งาน parameter
SelectInput( "คำสั่ง sql", "ชื่อ select", "id ถ้ามี", "class ถ้ามี", "style อื่นๆ ถ้ามี", "ข้อความแจ้งให้เลือก ถ้ามี", "ค่ารายการที่ถูกเลือก กรณีใช้แก้ไข", "ข้อความของ option", "ค่าของ option" }
โค้ดและตัวอย่างทั้งหมด
<?php include("db_connect.php"); // เรียกใช้ไฟล์ ตั้งค่า และฟังก์ชั่น เกี่ยวกับฐานข้อมูล $mysqli = connect(); // สร้าง ตัวแปร mysqli instance สำหรับเรียกใช้งานฐานข้อมูล ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"> </head> <body> <br> <br> <br> <?php function SelectInput( $sql=null,$se_Name="select1",$se_Id=null,$se_Class=null,$se_Style=null, $se_text="",$se_Select=null,$filed_option=null,$field_value=null ){ global $mysqli; $se_Id=($se_Id==null)?$se_Name:$se_Id; $se_text=($se_text==null)?"กรุณาเลือกรายการ":$se_text; $tagChoose='<option value="">'.$se_text.'</option>'; $tagOption=null; if($sql!=null){ $rs=$mysqli->query($sql); $total=$rs->num_rows; while($data=$rs->fetch_assoc()){ $tagSelected=null; $filed_optionText=$data[$filed_option]; $field_valueText=($field_value==null)?$filed_optionText:$data[$field_value]; if($se_Select!=null && $field_valueText==$se_Select){ $tagSelected=" selected"; } $tagOption.='<option value="'.$field_valueText.'" '.$tagSelected.'>'.$filed_optionText.'</option>'; } } $tagSelect = <<<TAG <select name="$se_Name" id="$se_Id" class="$se_Class" style="$se_Style" > $tagChoose $tagOption </select> TAG; // บรรทัดด้านบนนี้ที่ (TAG;) นี้ต้องชิดซ้ายสุด ห้ามมีช่องว่างทั้งหน้าและหลัง echo $tagSelect; } ?> <div style="margin:auto;width:80%;"> <?php SelectInput(" SELECT * FROM tbl_sale ORDER BY sale_date ", "product_name",null,null,null, "เลือกรายการสินค้า",null,"sale_product","sale_product" ); ?> <br><br> <?php SelectInput(" SELECT * FROM tbl_sale ORDER BY sale_date ","product_name",null,null,"width:250px;", "เลือกรายการสินค้า","Product C","sale_product",null ); ?> <br><br> <?php $_GET['data_select']="Product F"; SelectInput(" SELECT * FROM tbl_sale ORDER BY sale_date ","product_name",null,null,null, null,$_GET['data_select'],"sale_product",null ); ?> </div> </body> </html>