version 4.1.0

สร้างเมนู DropDownList และส่งค่าผ่าน ajax

  เสาร์ที่ 14 กุมภาพันธ์ พ.ศ. 2558 เวลา 00:44:58 น.      2,916 ครั้ง


สร้างเมนู DropDownList และส่งค่าผ่าน ajax

รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 1 | รูปภาพตัวอย่าง

สร้างไฟล์ Controller ชื่อว่า "ExampleController.php"

 class ExampleController extends Controller
{
     
    public function actionIndex()
    {
        $this->render('index');
    }
     
    public function actionDynamic()
    {
         
        // จังหวัด "ลำปาง"
        if($_POST['province_id'] == 1){
            $arr = array('เมือง', 'เสริมงาม', 'เถิน', 'แม่พริก');
            foreach ($arr as $value) {
                echo CHtml::tag('option', array('value' => $value), 
                CHtml::encode('อำเภอ' . $value), true);
            }
        }
        // จังหวัด "ลําพูน"
        if($_POST['province_id'] == 2){
            $arr = array('ทุ่งหัวช้าง', 'แม่ทา', 'เมืองลำพูน', 'ลี้');
            foreach ($arr as $value) {
                echo CHtml::tag('option', array('value' => $value), 
                CHtml::encode('อำเภอ' . $value), true);
            }
        }
        // จังหวัด "เชียงราย"
        if($_POST['province_id'] == 3){
            $arr = array('แม่สาย‎', 'เชียงแสน‎', 'ขุนตาล', 'เมืองเชียงราย‎');
            foreach ($arr as $value) {
                echo CHtml::tag('option', array('value' => $value), 
                CHtml::encode('อำเภอ' . $value), true);
            }
        }
        // จังหวัด "เชียงใหม่"
        if($_POST['province_id'] == 4){
            $arr = array('ดอยเต่า', 'ดอยสะเก็ด', 'ฝาง', 'แม่ริม');
            foreach ($arr as $value) {
                echo CHtml::tag('option', array('value' => $value), 
                CHtml::encode('อำเภอ' . $value), true);
            }
        }
        
        exit();
        
    }
    
}

1. เก็บไฟล์ Controller ชื่อว่า "ExampleController.php" ลงในโฟล์เดอร์ [skeleton]\protected\controllers

สร้างไฟล์ Views ตัวอย่าง ชื่อว่า "index.php"

 $this->pageTitle = Yii::app()->name;
echo CHtml::beginForm();
    echo CHtml::label('จังหวัด ', false);
    echo CHtml::dropDownList('province_id', '',
        array(
            '' => 'กรุณาเลือกจังหวัด',
            1 => 'ลำปาง',
            2 => 'ลำพูน',
            3 => 'เชียงราย',
            4 => 'เชียงใหม่',
        ),
        array(
            'ajax' => array(
                'type' => 'POST',
                'url' => $this->createUrl('example/dynamic'),
                'update' => '#city_id',
            )
        )
    );
    echo CHtml::label(' อำเภอ ', false);
    echo CHtml::dropDownList('city_id', '', array('' => 'ยังไม่ได้เลือกจังหวัด'));
echo CHtml::endForm();

2. เก็บไฟล์ Views ชื่อว่า "index.php" ลงในโฟล์เดอร์ "example" ตรงไดเรคทอรี่ [skeleton]\protected\views

รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 2 | รูปภาพตัวอย่าง

3. ทดสอบ ให้เราทดลองคลิก จังหวัด "เชียงใหม่" ดังรูป

รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 3 | รูปภาพตัวอย่าง

4. แสดงผล "รายการอำเภอ" ของจังหวัด "เชียงใหม่" ดังรูป




นักแปล / นักเขียน / เรียบเรียง

author

เอกบิณ ใจแก้วมา (แม็ก)

"โปรแกรมเมอร์ตัวเล็ก ๆ" สะสมประสบการณ์ด้านการพัฒนาซอฟแวร์มามากกว่า 11 ปี
# ติดตามผลงานได้ที่ | พบกับเราที่ Google+ | Facebook






Comment