PHP CI MANIA : ตอนที่ 10 วิธีกำหนดค่าเริ่มต้น (Default Value) ให้กับช่องป้อนข้อมูลจาก SESSION/POST/GET

โดย SONGCHAI SAETERN
ไปที่แท็ป "ตั้งค่า" และเลื่อนลงมาในส่วนที่ 3 ตั้งค่าที่คอลัม "SOURCE (Add Form)"

จะประกอบด้วยตัวเลือกดังนี้
  • Form Input จะเป็นการกำหนดตาม "ประเภทช่องป้อนข้อมูล" ในตอนที่ 7
  • URI Segment จะเป็นการดึงค่าใน URL หลัง /index.php ตามด้วยตัวเลขระบุลำดับที่ต้องการ 
  • SESSION จะเป็นการดึงค่า SESSION ที่ล็อกอินมาใช้งาน 
  • GET จะเป็นการดึงค่าใน URL (สำหรับ CodeIgniter จะไม่นิยมส่ง GET จะใช้ URI Segment )
  • POST จะเป็นการรับค่าจากการกด SUBMIT มายังหน้าแบบฟอร์มปัจจุบัน



มาลองดูผลลัพธ์ทีละส่วนกันครับ

1. Form Input
     จะกำหนดตาม "ประเภทช่องป้อนข้อมูล" ในตอนที่ 7 ในตัวอย่างนี้จะเลือก "ประเภทช่องป้อนข้อมูล" เป็นแบบบรรทัดเดียว

 เมื่อสร้างไฟล์ Views และ Controller เรียบร้อยแล้ว ให้คลิกเข้าไปที่หน้า "เพิ่มข้อมูลใหม่" จะได้ผลลัพธ์ดังนี้


2. URI Segment
     จะต้องกำหนดตำแหน่งของ URL ที่ต้องการดึงมาใช้งานด้วย ในตัวอย่างนี้คือเลข 4

   เมื่อสร้างไฟล์ Views และ Controller เรียบร้อยแล้ว ให้คลิกเข้าไปที่หน้า "เพิ่มข้อมูลใหม่" จะได้ผลลัพธ์เป็นช่อง INPUT ที่ไม่สามารถกรอกข้อมูลได้ จะรับค่าจาก URL

    ทดสอบโดยการป้อนข้อมูลลงในตำแหน่งที่ 4 แล้ว Enter เพื่อดูผลลัพธ์ในช่อง INPUT


3. SESSION
     จะต้องกำหนดชื่อ SESSION ลงไปด้วย ซึ่งใน example_project ที่ออกแบบสำหรับรันโค้ดที่ได้จาก PHP CI MANIA นี้จะกำหนดไว้ตอน Login ในไฟล์ application/models/Member_login_model.php

เทมเพลต example_expert จะอยู่ที่ตำแหน่ง
application\modules\member\models\Login_model.php
ฟังก์ชั่น validate() สามารถเพิ่มจากตรงนี้ได้


     
   ในตัวอย่างนี้เราจะกำหนดให้รับค่าจาก user_id ให้พิมพ์ลงแทนที่ member_id 

    และการจะใช้ SESSION ได้นั้น ก็ต้องผ่านระบบล็อกอินด้วย ดังนั้นก็ต้องคลิกเลือก "Login Require" ทุกครั้งเพื่อเช็คสิทธิ์การเข้าใช้งาน


    เมื่อสร้างไฟล์ Views และ Controller เรียบร้อยแล้ว ให้คลิกลิงค์เพื่อดูตัวอย่าง ก็จะพบกับหน้าตรวจสอบสิทธิ์ก่อนเข้าใช้งาน ให้ใช้รหัสทดสอบ user1 รหัสผ่าน 123456
    เมื่อล็อกอินเรียบร้อย จะเข้าไปที่หน้ารายการ ให้คลิกที่ปุ่ม "เพิ่มข้อมูลใหม่" จะเห็นว่าในช่อง INPUT ได้แสดงไอดีสมาชิกที่เป็น SESSION ชื่อว่า user_id ลงในแบบฟอร์มให้อัตโนมัติ


4. GET    
    จะเป็นการดึงค่าใน URL ซึ่ง CodeIgniter จะไม่นิยมรับ-ส่ง ค่าแบบ GET แต่จะใช้ URI Segment ในแบบข้อที่ 2 แทน สำหรับการใช้งาน ให้กำหนดชื่อพารามิเตอร์ที่จะใช้ รับ-ส่งค่า ตัวอย่างคือ member_id
      เมื่อสร้างไฟล์ Views และ Controller เรียบร้อยแล้ว ให้คลิกลิงค์เพื่อดูตัวอย่าง เข้าไปที่ "เพิ่มข้อมูลใหม่" จะได้ผลลัพธ์เป็นช่อง INPUT ที่ไม่สามารถกรอกข้อมูลได้ แต่จะรับค่าพารามิเตอร์ที่ชื่อ member_id จาก URL เท่านั้น


    ทดสอบโดยการป้อนข้อมูลลง URL โดยต่อท้ายเครื่องหมาย ? ตามด้วยพารามิเตอร์ member_id={ค่าที่ต้องการ} ในตัวอย่างคือ 1234 แล้ว Enter เพื่อดูผลลัพธ์ในช่อง INPUT

    จะเห็นว่าค่าที่ส่งผ่าน URL มานั้นจะแสดงใน INPUT ให้อัตโนมัติ



4. POST 
    สำหรับการรับส่งค่าแบบ POST นั้น ก็ตั้งค่าเช่นเดียวกับ GET คือ กำหนดชื่อพารามิเตอร์ที่จะใช้ รับ-ส่งค่า ตัวอย่างคือ member_id แต่จะแตกต่างกันที่การทดสอบ จะต้องสร้างฟอร์มขึ้นมาเพื่อกด SUBMIT ส่งค่าแบบ POST มายังแบบฟอร์มที่เราสร้างไว้

    เมื่อสร้างไฟล์ Views และ Controller เรียบร้อยแล้ว ให้คลิกลิงค์เพื่อดูตัวอย่าง คลิกเข้าไปที่ "เพิ่มข้อมูลใหม่" จะได้ผลลัพธ์เป็นช่อง INPUT ที่ไม่สามารถกรอกข้อมูลได้ แต่จะรับค่าพารามิเตอร์ที่ชื่อ member_id จากการ SUBMIT ผ่านแบบฟอร์มมาเท่านั้น


ตัวอย่างแบบฟอร์มส่งค่า action="{URL ของแบบฟอร์มเพิ่มข้อมูลที่ได้สร้างไว้}" ในที่นี้คือ index.php/test/resume/add และส่งข้อมูล Input ที่มีแอตทริบิวต์ name="member_id" เหมือนที่เราได้รับค่าไว้

     เมื่อกด บันทึก แบบฟอร์มนี้ก็จะส่งข้อมูล member_id ที่ไปยังหน้า "เพิ่มข้อมูลใหม่" ที่เราได้สร้างเตรียมไว้รับค่า POST ก็จะแสดงตัวเลข 1234 อัตโนมัติ


วิดีโอสาธิตการทำงาน
PHP CI MANIA #7 ระบบบริหารจัดการข้อมูลโรงเรียน ส่งข้อมูลผ่าน URL เพื่อบันทึก Resume [CodeIgniter] ] https://www.youtube.com/watch?v=OArRxYz6T2A