LINE Flex message ใช้ while loop ข้อมูลเข้ามาใส่ใน carousel ได้ยังไงครับ
ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา LINE Flex message ใช้ while loop ข้อมูลเข้ามาใส่ใน carousel ได้ยังไงครับ
LINE Flex message ใช้ while loop ข้อมูลเข้ามาใส่ใน carousel ได้ยังไงครับ
1 2 | คือตอนนี้ผมลูปข้อมูลออกมากจาก db มาใส่ใน carousel ได้แล้ว แต่มันขึ้นอันเดียว(ตามโค้ด)ในแชท Line ถ้าอยากได้หลายอันผมต้องลูปข้อมูลยังไงครับ จากโค้ดด้านล่าง สมมติมีรายการแจ้ง 10 รายการ ผมอยากให้ลูปข้อมูลมาทั้ง 10 รายการ แล้วใส่ใน carousel ครับ ขอบคุณครับ |
1 2 3 4 5 6 7 8 9 10 11 12 | if (mysqli_num_rows( $result ) > 0) { //ถ้ามี // output data of each row while ( $row = mysqli_fetch_assoc( $result )) { $repairID = $row [ 'repairID' ]; $dis = mb_substr( $row [ "discrition" ], 0, 15); //รายละเอียด $date = $row [ "dt_add" ]; // วันที่ $description = $row [ 'description' ]; //รายการแจ้งซ่อม //ตรวจสอบรูป if ( $row [ "image" ] == '' ) { //ถ้าไม่มีรูป $img = 'www.xxx.com' ; } else { // ถ้ามีรูป $img = 'www.xxx.com?img=' . $row [ "image" ]; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | } } //ข้อมูลที่ตอบกลับไปยัง line ผู้ใช่ เมื่อตรวจสอบว่ามีข้อมูลในระบบ $messages = [ "type" => "flex" , "altText" => "รายการแจ้งซ่อมของคุณ" , "contents" => [ "type" => "carousel" , "contents" => [ [ "type" => "bubble" , "hero" => [ "type" => "image" , "size" => "full" , "aspectRatio" => "20:13" , "aspectMode" => "cover" , "url" => $img ], "body" => [ "type" => "box" , "layout" => "vertical" , "spacing" => "sm" , "contents" => [ [ "type" => "text" , "text" => "แจ้งซ่อมล่าสุด" , "wrap" => true, "weight" => "bold" , "size" => "xl" ], [ "type" => "box" , "layout" => "baseline" , "contents" => [ [ "type" => "text" , "text" => $dis . "..." , "wrap" => true, "weight" => "bold" , "size" => "xl" , "flex" => 0 ] ] ] ] ], "footer" => [ "type" => "box" , "layout" => "vertical" , "spacing" => "sm" , "contents" => [ [ "type" => "button" , "style" => "primary" , "action" => [ "type" => "message" , "label" => "Track" , "text" => "Track" ] ], [ "type" => "button" , "style" => "primary" , "color" => "#9c4924" , "action" => [ "type" => "uri" , "label" => "ประเมินผล" , "uri" => "https://www.tu-library.com/gentelella-master/repair_1/line-form/survey-user.php?getid=" . $repairID ] ] ] ] ], [ "type" => "bubble" , "body" => [ "type" => "box" , "layout" => "vertical" , "spacing" => "sm" , "contents" => [ [ "type" => "button" , "flex" => 1, "gravity" => "center" , "action" => [ "type" => "uri" , "label" => "See more" , "uri" => "https://tu-library.com/gentelella-master/repair_1/line-form/tables_all-line.php?getuserId=" . $str ] ] ] ] ] ] ] ]; |

คำแนะนำ และการใช้งาน
สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก
- ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
ความคิดเห็นที่
1
ให้ดูโครงสร้าง flex ที่ถูกต้อง ทีสามารถแสดง carousel ได้
แล้วให้มองหาส่วนที่เป็นโครงสร้าง array ของ flex ที่เราจะใช้ค่าจาก loop ข้อมูล db
ถ้าโครงสร้างที่ถูกต้องประมาณนี้
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | //ข้อมูลที่ตอบกลับไปยัง line ผู้ใช่ เมื่อตรวจสอบว่ามีข้อมูลในระบบ $messages = [ "type" => "flex" , "altText" => "รายการแจ้งซ่อมของคุณ" , "contents" => [ "type" => "carousel" , "contents" => [ [ "type" => "bubble" , ], [ "type" => "bubble" , ] ] ] ]; |
loop ที่ใช้ คือ array ของ bubble ให้เรากำหนดเป็นตัวแปร
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $messages = [ "type" => "flex" , "altText" => "รายการแจ้งซ่อมของคุณ" , "contents" => [ "type" => "carousel" , "contents" => [ [ "type" => "bubble" , ], [ "type" => "bubble" , ] ] ] ]; |
กำหนด array แยก
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $arrBubble = [ [ "type" => "bubble" , ], [ "type" => "bubble" , ] ]; $messages = [ "type" => "flex" , "altText" => "รายการแจ้งซ่อมของคุณ" , "contents" => [ "type" => "carousel" , "contents" => $arrBubble ] ]; |
สุดท้ายเอา สร้าง array ของ bubble ใน loop ของ db
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $arrBubble = []; while (){ $arrBubble [] = [ "type" => "bubble" , ] } $messages = [ "type" => "flex" , "altText" => "รายการแจ้งซ่อมของคุณ" , "contents" => [ "type" => "carousel" , "contents" => $arrBubble ] ]; |

ความคิดเห็นที่
2
โอ้วววววววว ได้แล้ว สุดยอดมาก
ขอบพระคุณมากครับ ผมนั่งงมตั้งหลายวัน

ขอบคุณทุกการสนับสนุน
![]()