รบกวนช่วยดูโค้ด listbox 2 ชั้น ที่ดึงข้อมูลจากฐานข้อมูลมาแก้ไขให้หน่อยนะคะ

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา รบกวนช่วยดูโค้ด listbox 2 ชั้น ที่ดึงข้อมูลจากฐานข้อมูลมาแก้ไขให้หน่อยนะคะ

รบกวนช่วยดูโค้ด listbox 2 ชั้น ที่ดึงข้อมูลจากฐานข้อมูลมาแก้ไขให้หน่อยนะคะ
ตอนนี้กำลังทำแก้ไขข้อมูลอยู่คะ แต่ติดปัญหาที่ listbox ตัวที่ 2 มันขึ้นค่าสุดท้ายที่เรียกมาจากฐานข้อมูลคะ
ไม่ยอมขึ้นค่าของตัวมันเอง รบกวนช่วยดูให้หน่อยนะคะ


<select name="lstype" class="form-control" id="lstype" title="<?php echo $row_rs_prd['pt_name']; ?>">
<option value="0">เลือก</option>
</select>
-----------------------------------------------------------
<?php include('script/listbox_2_edit.php');?>

อันนี้เป็นโค้ดที่นำมาจากในเว็บนะคะ
<script type="text/javascript">  
$(document).ready(function(e) {
	loadlist2("select#lstype",$("select#lsgroup").val());
    $("select#lsgroup").change(function(){
		var datalist2 = $.ajax({	// รับค่าจาก ajax เก็บไว้ที่ตัวแปร datalist2
			  url: "script/data_for_list2_edit.php", // ไฟล์สำหรับการกำหนดเงื่อนไข
			  data:"lsgroup="+$(this).val(), // ส่งตัวแปร GET ชื่อ lsgroupให้มีค่าเท่ากับ ค่าของ lsgroup
			  async: false
		}).responseText;		
		$("select#lstype").html(datalist2); // นำค่า datalist2 มาแสดงใน listbox ที่ 2 ที่ชื่อ lstype
		// ชื่อตัวแปร และ element ต่างๆ สามารถเปลี่ยนไปตามการกำหนด
	});
});  

function loadlist2(Obj,Target){
	var datalist2 = $.ajax({	
		  url: "script/data_for_list2_edit.php", 
		  data:"lsgroup="+Target, 
		  async: false
	}).responseText;	
	$(Obj).html(datalist2);
}
</script>

<?php  
header("Content-type:text/html; charset=UTF-8");                
header("Cache-Control: no-store, no-cache, must-revalidate");               
header("Cache-Control: post-check=0, pre-check=0", false); 

// ส่วนติดต่อกับฐานข้อมูล    
mysql_connect("localhost","root","1234") or die("Cannot connect the Server");         
mysql_select_db("loma") or die("Cannot select database");         
mysql_query("set character set utf8"); 
?>

<?php if(isset($_GET['lsgroup']) && $_GET['lsgroup']!=""){?>
	<option value="0">เลือก</option>
	<?php
	$query_rs_type="SELECT * FROM product_type WHERE gr_id ='".$_GET['lsgroup']."' ";
	$rs_type=mysql_query($query_rs_type);
	while($row_rs_type=mysql_fetch_assoc($rs_type)){
	?>
	<option value="<?php echo $row_rs_type['pt_id']; ?>"selected="selected"><?php echo $row_rs_type['pt_name']; ?></option>
	<?php } ?>  
	<?php }else{ ?>  
  	<option value="0">เลือก</option>  
<?php } ?>


    


Kkkk 1.0.160.xxx 26-09-2016 19:54:20

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
ลองแบบนี้ดู

<?php  
header("Content-type:text/html; charset=UTF-8");                
header("Cache-Control: no-store, no-cache, must-revalidate");               
header("Cache-Control: post-check=0, pre-check=0", false); 

// ส่วนติดต่อกับฐานข้อมูล    
mysql_connect("localhost","root","1234") or die("Cannot connect the Server");         
mysql_select_db("loma") or die("Cannot select database");         
mysql_query("set character set utf8"); 
?>

<?php if(isset($_GET['lsgroup']) && $_GET['lsgroup']!=""){?>
	<option value="0">เลือก</option>
	<?php
	$query_rs_type="SELECT * FROM product_type WHERE 1 ";
	$rs_type=mysql_query($query_rs_type);
	while($row_rs_type=mysql_fetch_assoc($rs_type)){
	?>
	<option value="<?php echo $row_rs_type['pt_id']; ?>" <?=($row_rs_type['pt_id']==$_GET['lsgroup'])?" selected":""?>><?php echo $row_rs_type['pt_name']; ?></option>
	<?php } ?>  
	<?php }else{ ?>  
  	<option value="0">เลือก</option>  
<?php } ?>


ninenik 1.47.2.xxx 26-09-2016
 ความคิดเห็นที่ 2
ข้อมูลที่ขึ้นมันผิดอ่ะคะ
สินค้านี้ความจริงแล้วประเภทสินค้าจะต้องเป็น เสื้อกาวน์ คะ

และในหมวดสินค้า Coverall นี้ จะต้องมีประเภทสินค้าขึ้นมาแค่ 6 ประเภทคะ แต่มันขึ้นมาหมดเลย

รบกวนด้วยนะคะ


kkkk 118.173.156.xxx 27-09-2016 00:19
 ความคิดเห็นที่ 3
ลองแบบนีี้ดู

<select name="lsgroup" class="form-control" id="lsgroup" data-initval="<?=ตัวแปรค่าไอดีรยการนี้?>">
<option value="0">เลือก</option>
</select>

<select name="lstype" class="form-control" id="lstype" data-initval="<?=ตัวแปรค่าไอดีรยการนี้?>">
<option value="0">เลือก</option>
</select>


<script type="text/javascript">
$(function(){

	var loadOption = function(targetFile,targetObj,dataSend){
		var dataCheck=$(targetObj).data("initval");
		if(dataCheck!=null){
			dataSend=$.extend(dataSend,{checkVal:dataCheck});
		}
         $.get(targetFile,dataSend,function(data){ 
                $(targetObj).html(data);  
                $(targetObj).trigger("change");    
         });		
	}
	    
     $("select#lsgroup").on("change",function(){  
	 	var dataSend={
			lsgroup:$(this).val()
		};
		var targetObj="select#lstype";
	 	loadOption("script/data_for_list2_edit.php",targetObj,dataSend);
    });     
        
	$("select#lsgroup").val(function(){
		return $(this).data("initval");	
	}).trigger("change");
    
});
</script>      



ใช้ data- attribute ช่วย โดยเก็บค่า id ของข้อมูลนั้นๆ แล้วก็เรียกใช้ฟังก์ชั่นตามตัวอย่างด้านบน

ส่วนไฟล์ php ก็ประมาณนี้

<?php  
header("Content-type:text/html; charset=UTF-8");                
header("Cache-Control: no-store, no-cache, must-revalidate");               
header("Cache-Control: post-check=0, pre-check=0", false); 

// ส่วนติดต่อกับฐานข้อมูล    
mysql_connect("localhost","root","1234") or die("Cannot connect the Server");         
mysql_select_db("loma") or die("Cannot select database");         
mysql_query("set character set utf8"); 
?>

<?php if(isset($_GET['lsgroup']) && $_GET['lsgroup']!=""){?>
	<option value="0">เลือก</option>
	<?php
	$query_rs_type="SELECT * FROM product_type WHERE gr_id ='".$_GET['lsgroup']."' ";
	$rs_type=mysql_query($query_rs_type);
	while($row_rs_type=mysql_fetch_assoc($rs_type)){
		$is_selected=(isset($_GET['checkVal']) && $_GET['checkVal']==$row_rs_type['pt_id'])?" selected":"";
	?>
	<option value="<?php echo $row_rs_type['pt_id']; ?>" <?=$is_selected?>>
	<?php echo $row_rs_type['pt_name']; ?></option>
	<?php } ?>  
	<?php }else{ ?>  
  	<option value="0">เลือก</option>  
<?php } ?>


>>>  อัพเดท >>> 27-09-2016
------------------------------------------
ลองดูเนื้อหานี้เป็นแนวทาง
 
ประยุกต์การเลือก listbox มากกว่า 2 รายการ ที่สัมพันธ์กัน รองรับการแก้ไข 


ninenik 183.88.190.xxx 27-09-2016
 ความคิดเห็นที่ 4
ได้แล้วคะ ขอบคุณมากๆ นะคะ


kkkk 118.173.147.xxx 27-09-2016 18:42
1






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ