คำอธิบายโค้ด:
!empty($profileData->photo) ตรวจสอบว่ามีรูปภาพโปรไฟล์หรือไม่
ถ้ามีรูปภาพ จะใช้ URL ของภาพจาก upload/admin_images/ ตามชื่อภาพที่เก็บใน $profileData->photo
ถ้าไม่มี จะใช้ no_image.jpg แทน
จากนั้นมาเปลี่ยน ชื่อกันให้เรียกจาก db มาใช้ โดยแก้เป็น
คำอธิบายแต่ละส่วน
<input type="text">
ระบุว่า input นี้เป็นชนิดtext
ซึ่งหมายถึงช่องรับค่าข้อความทั่วไปที่ผู้ใช้สามารถกรอกข้อมูลได้name="username"
กำหนดname
ของ input เป็น"username"
ซึ่งเป็นตัวระบุของข้อมูลนี้ในฟอร์ม เมื่อฟอร์มถูกส่งข้อมูลนี้จะถูกส่งไปพร้อมกับชื่อusername
class="form-control"
ใช้คลาสform-control
ซึ่งเป็นคลาสจาก Bootstrap (เฟรมเวิร์ก CSS ยอดนิยม) เพื่อทำให้ input มีสไตล์และลักษณะตามที่ Bootstrap กำหนดไว้ เช่น ให้ขนาดที่เหมาะสมและขอบที่เป็นระเบียบid="exampleInputUsername1"
ระบุid
ของ input เป็น"exampleInputUsername1"
ซึ่งสามารถใช้สำหรับการเชื่อมโยงกับ<label>
หรือใช้ใน JavaScript เพื่ออ้างอิงถึง input นี้โดยตรงvalue="{{$profileData->username}}"
ตั้งค่าคุณสมบัติvalue
ของ input ให้แสดงค่าจากตัวแปรprofileData->username
โดยเครื่องหมาย{{ }}
เป็นไวยากรณ์ที่ใช้ใน PHP framework เช่น Laravel สำหรับดึงค่าจากตัวแปรprofileData
ซึ่งในที่นี้เป็นออบเจ็กต์ข้อมูลโปรไฟล์ของผู้ใช้ และดึงค่าฟิลด์username
ของออบเจ็กต์นั้นมาแสดงใน input
เพิ่ม jquery เพื่อให้เปลี่ยนรูปภาพ
อย่าลืมเพิ่ม <script src=”https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js”></script>
<script type=“text/javascript”> $(document).ready(function(){ $(‘#Image’).change(function(e){ var reader = new FileReader(); reader.onload = function(e){ $(‘#ShowImage’).attr(‘src’, e.target.result); } reader.readAsDataURL(e.target.files[0]); }); }); </script>
คำอธิบายโค้ดแต่ละส่วน
$(document).ready(function(){ ... });
ฟังก์ชันนี้ใช้เพื่อรอให้หน้าเว็บโหลดข้อมูลทั้งหมดเสร็จแล้วก่อนจะเริ่มทำงานภายในฟังก์ชันready
นี้ โดยเป็นฟังก์ชันของ jQuery$('#Image').change(function(e){ ... });
เมื่อมีการเปลี่ยนแปลงค่าใน input ที่มี id เป็นImage
(คาดว่าเป็น input แบบfile
ที่ใช้เลือกไฟล์ภาพ) ฟังก์ชันchange
นี้จะถูกเรียกใช้ โดยe
คือเหตุการณ์ (event) ที่เกิดขึ้นvar reader = new FileReader();
สร้างออบเจ็กต์FileReader
ขึ้นมาเพื่ออ่านไฟล์ที่ผู้ใช้เลือก (ในกรณีนี้คือไฟล์รูปภาพ)reader.onload = function(e){ ... }
ฟังก์ชันonload
ถูกกำหนดเพื่อให้ทำงานหลังจากที่ไฟล์โหลดเสร็จเรียบร้อย โดยe.target.result
จะเป็น URL ของไฟล์ที่โหลดขึ้นมา$('#ShowImage').attr('src', e.target.result);
เมื่อโหลดไฟล์เสร็จแล้ว จะนำ URL ของไฟล์ที่ได้จากe.target.result
ไปตั้งเป็นค่าsrc
ของ<img id="ShowImage">
ซึ่งทำให้แสดงภาพตัวอย่างได้ทันทีreader.readAsDataURL(e.target.files[0]);
คำสั่งนี้บอกFileReader
ให้อ่านไฟล์ที่ผู้ใช้เลือก โดยไฟล์ที่เลือกจะอยู่ในe.target.files
ซึ่งเป็นอาร์เรย์ของไฟล์ที่เลือก (files[0]
คือไฟล์แรกที่เลือก)
จากนั้นก็ลองทดสอบว่า เพิ่มรูปภาพแล้ว ขึ้นมาหรือยัง
แบ่งปันกัน เราอยู่กันไม่เกิน 100 ปีหรอกครับ
สุดท้ายก็ทิ้งไว้ที่โลก จะคงเหลือไว้แต่คุณงามความดีที่ให้ระลึกถึงกันครับ
Follow Us / Thanat Sirikitphattana