|
|
|
สร้าง dropdownlist 2 แถว ให้สามารถแสดงข้อมูลมาจากคนละ table จาก code ต้องทำการแก้ไขอย่างไรบ้างครับ |
|
|
|
|
|
|
|
เอาง่ายๆ ก็ select 2 ชุดครับ
code ที่เอามาให้ดู เขา select อันเดียว เราก็เขียนของเราเพิ่มอีกอัน
|
|
|
|
|
Date :
2020-01-22 00:59:30 |
By :
mongkon.k |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ชื่อ function เปลี่ยนอย่าให้ตรงกัน
|
|
|
|
|
Date :
2020-01-22 12:54:31 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<select name="txtBU" OnChange="resutName(this.value);"> บันทัดนี้แก้ด้วยหรือเปล่า เรียกใช้ถูก function หรือเปล่า
ปล. แก้ไขอะไรแล้วก็เอามาลงทุกครั้ง อย่าให้คนช่วยเขาเดาไปเอง
|
ประวัติการแก้ไข 2020-01-22 18:55:03
|
|
|
|
Date :
2020-01-22 18:53:33 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คำถาม งงไม่ค่อยเข้าใจครับ
ส่วนโค๊ดข้างล่างเป็นตัวอย่างการเขียนโค๊ด ลองดูครับว่าเข้าใจง่ายไหม
Code (PHP)
<?php
//$conn=mysqli_connect("localhost","root","cde32wsx","autolist");
$conn=ืnew mysqli('localhost','root','cde32wsx','autolist');
// เลิกใช้ procedural command ได้แล้ว deprecate ไปหลายรุ่นแล้ว
// หัดใช้ single quote กับตัวแปรขนิด constant ทำงานเร็วกว่ากันไม่ต้องเช็คว่ามีตัวแปรอยู่หรือไม่
// ---------------------------------------
$strSQL = 'SELECT CustommerID, Email FROM customer ORDER BY CustomerID';
// ใช้แค่ 2 ฟีลด์ เชียนเฉพาะเจาะจงลงไปเลย
// order by xxx Asc Asc ไม่ต้องใส่ เป็นค่า default อยู่แล้ว จะใส่เมื่อใช้ desc
// ---------------------------------------
//$objQuery = mysqli_query($conn,$strSQL);
$objQuery = $conn->query($strSQL);
// เปลี่ยนไปใช้ oop เขียนสั้นกว่ากันเยอะเลย และไม่ต้องกลัวหลงลืม parameter
//while($objResult = mysqli_fetch_array($objQuery))
$cu_ar = []; //ใช้ตัวแปร array เก็บ result
while($ro = $objQuery->fetch_object()){
$cu_ar[$ro->CustommerID]=$ro->Email;
}
// ---------------------------------------
$strSQL = 'SELECT CustommerID, Email FROM bu ORDER BY CustomerID'; // ใช้แค่ 2 ฟีลด์ เชียนเฉพาะเจาะจงลงไปเลย
//$objQuery = mysqli_query($conn,$strSQL);
$objQuery = $conn->query($strSQL);
$bu_ar = []; //ใช้ตัวแปร array เก็บ result
while($ro = $objQuery->fetch_object()){
$bu_ar[$ro->CustommerID]=$ro->Email;
}
$conn->close();
//----------------------------------------------------------------
// แยกส่วน php กับ html ให้มากที่สุด
//----------------------------------------------------------------
?>
<html>
<head>
<title>Test list BU send mail</title>
</head>
<script language="JavaScript">
// ใช้ json มาช่วยการทำงานให้ง่ายขึ้น
var cus = <?=json_encode($cu_ar);?>
var bus = <?=json_encode($bu_ar);?>
function resutName(CusID){ frmMain.txtName.value = (typeof cus[CusID]!=='undefined')? cus[CusID] : '';}
function resutbu(CusID){ frmMain.txtName1.value = (typeof bus[CusID]!=='undefined')? bus[CusID] : '';}
</script>
<body>
<form action="sendex2.php" method="post" name="frmMain">
List Menu
<div class="wrap-input100 input100-select">
<span class="label-input100">Engineer input</span>
<select name="txtUserIDno" OnChange="resutName(this.value);">
<option value=""><-- Engineer inputs --></option>
<?php foreach( $cu_ar as $k=>$em){?>
<option value="<?=$k?>"><?=$k?></option>
<?php }?>
</select>
<input name="txtName" type="text" value="">
<span class="focus-input100"></span>
</div>
<div class="wrap-input100 input100-select">
<span class="label-input100">BU input</span>
<select name="txtBU" OnChange="resutbu(this.value);">
<option value=""><-- BU input --></option>
<?php foreach($bu_ar as $k=>$v){?>
<option value="<?=$k?>"><?=$k?></option>
<?php }?>
</select>
<input name="txtName1" type="text" value="">
<span class="focus-input100"></span>
</div>
<div class="contact100-form-bgbtn"></div>
<button class="contact100-form-btn">
<span>Submit<i class="fa fa-long-arrow-right m-l-7" aria-hidden="true"></i></span>
</button>
</div>
</form>
</body>
</html>
|
ประวัติการแก้ไข 2020-01-23 13:10:45
|
|
|
|
Date :
2020-01-23 13:08:50 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$strSQL = 'SELECT CustommerID, Email, fld2,fld3,fld4,fld.... FROM bu ORDER BY CustomerID';
อยากแสดงอะไรบ้าง ก็เพิ่ม field เข้าไปครับ
เปลี่ยนการเก็บข้อมูลแค่ ข้อมูลเดียว เป็นทั้ง row
Code (PHP)
while($ro = $objQuery->fetch_object()){
$cu_ar[$ro->CustommerID]=$ro;
}
แล้วเปลี่ยนการแสดงผล จาก datatype เป็น string ค่าเดียว ให้อ้างอิงเป็น object.fldname
Code (JavaScript)
function resutbu(CusID){
var chk = (typeof bus[CusID]!=='undefined');
frmMain.txtName1.value = chk? bus[CusID].Email : '';
...... มีกี่ field กี่ textbox ก็ใส่เข้าไป .....
}
|
|
|
|
|
Date :
2020-01-23 16:18:19 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|