1111111111111


เว็บใหม่ที่ผมขอใช้ฟรีครับ ภาวนาอยู่ว่าวันดีคืนดีข้อมูลคงไม่หายเหมือนเว็บอื่น

วันจันทร์ที่ 11 เมษายน พ.ศ. 2554

การเอา ช่องรับข้อมูลด้านบนออกจาก CGridView หรือไม่แสดงส่วน Headder ของ CGridView

ผมสงสัยมาตั้งนานมากรอบที่อยู่ด้านบนของ CGridView เราจะเอาออกยังงัย วันนี้มีคำตอบครับ (ต้องเรียกว่าเส้นผมบังภูเขาครับ)

จากรูป


เมื่อเอาออกจะได้ดังรูป



มีวิธีการดังนี้


widget('zii.widgets.grid.CGridView', array(
'id'=>'employee-grid',
'dataProvider'=>$model->search(),
// 'filter'=>$model, เอาส่วนนี้ออกหรือใส่คอมเมนต์ครับ (เส้นผมบังภูเขาครับ)
'hideHeader'=>true, //ถ้าไม่อยากให้แสดงส่วน Headder ครับ
'columns'=>array(
.....
.....
),
));



CGridView ที่ไม่มี Headder ครับ





วันศุกร์ที่ 8 เมษายน พ.ศ. 2554

การนำรูปไปใส่ใน CDetailView และ CGridView ครับ

ภาพ 1 ภาพ แทนคำ ได้เป็นล้านคำ
บางครั้งเราเห็นหน้าเว็บมีรูปเป็นตารางแล้วมีรูปอยู่ด้วนใน วันนี้เราจึงมาทดลองแทรกรูปใน CDetailView และ CGridView กันครับ


โดยมี 2 แบบที่น่าสนใจครับ คือ 1. type เป็น image 2. type เป็น html

แทรกรูปใน CDetailView
$this->widget('zii.widgets.CDetailView', array(
        'data'=>$model,
        'attributes'=>array(
                'columnId',
                'column1',
                'column2',
                'column3',
                array(                  
                    'label'=>'My Pic',
                    'type'=>'image',
                    'value'=>'path/to/image.jpg',
                ),      
        ),
));

แทรกรูปใน CGridView
$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$dataProvider,
    'columns'=>array(
        array(
            'name'=>'employeePhoto',
             'type'=>'image',   // กำหนด type เป็น image
             'value'=>'"images/employee/" . $data->idEmp . ".gif"',
        ),
    ),
));


$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$dataProvider,
    'columns'=>array(
        array(
            'name'=>'employeephoto',
             'type'=>'html',   // กำหนด type เป็น html
             'value'=>'CHtml::image("images/employee/".$data->idEmp.".gif", "รูปพนักงาน")',
             //วิธีนำค่าใน $dataProvider มาแสดงครับ เช่น พนักงานรหัส 100 ก็จะแสดงรูป 100.gif
        ),
    ),
));


$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$dataProvider,
    'columns'=>array(
        array(
            'name'=>'employeephoto',
             'type'=>'html',   // กำหนด type เป็น html 
             'value'=>'CHtml::image("images/employee/chawdoy.gif", "รูปพนักงาน")',  
             //วิธีระบุชื่อไฟล์รูป chawdoy.gif ลงไปเลย
        ),
    ),
));



วันพฤหัสบดีที่ 7 เมษายน พ.ศ. 2554

ตัวอย่างการใช้ CSqlDataProvider ครับ

ตัวอย่างการใช้ CSqlDataProvider ครับจากเนื้อหาที่ผ่านมาผมประมวลผลคำสั่ง SQL แล้วนำมาแสดงโดยการวนลูปเท่านั้น

สำหรับเนื้อหาส่วนนี้เป็นการประมวลผลคำสั่ง SQLแล้วส่งให้ CSqlDataProvider ครับ ก่อนแสดงผลใน CGridView ดังนี้

ขั้นตอนที่ 1. กำหนดการเชื่อมต่อฐานข้อมูล (http://www.yii.in.th/forum/index.php?topic=30.0)
ผมขอข้ามนะครับเพราะตรงกับเนื้อหาด้านล่าง

ขั้นตอนที่ 2. เชื่อมต่อฐานข้อมูลและประมวลผลข้อมูลจากฐานข้อมูล


$sqlStatement ="SELECT thai_province.thaiName, thai_province.engName, thai_slogan.slogan FROM thai_slogan RIGHT Join thai_province
ON thai_slogan.provinceID = thai_province.provinceID";


$connection=Yii::app()->db;

$connection->active=true;

$dataProvider=new CSqlDataProvider($sqlStatement, array(
'sort'=>array(
'attributes'=>array('thaiName', ),
),
'pagination'=>array(
'pageSize'=>77,
),
));

$this->render('sqlDataProvider', array(
'dataProvider'=>$dataProvider)
);


ขั้นตอนที่ 3. แสดงผลในส่วนของ view

$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'chawdoy-grid',
'dataProvider'=>$dataProvider,
'columns'=>array(

array(
'name'=>'thaiName',
'header'=>'จังหวัด',
),
array(
'name'=>'engName',
'header'=>'Province',
),
array(
'name'=>'slogan',
'header'=>'คำขวัญประจำจังหวัด',
),


),

));



ตัวอย่าง : http://php.bungkhan.com/province/province/sqlDataProvider
ศึกษาเพิ่มเติม : http://www.yiiframework.com/doc/guide/1.1/en/database.dao

ไกล้ปีใหม่ไทยแล้วก็ขอให้ทุกท่านมีความสูขมากๆนะครับ



วันพุธที่ 6 เมษายน พ.ศ. 2554

ตัวอย่าง Yii เชื่อมต่อกับฐานข้อมูลโดยไม่ใช้ Active Record ครับ

เป็นตัวอย่าง Yii เชื่อมต่อกับฐานข้อมูลโดยไม่ใช้ Active Record ครับ

ตัวอย่างอยู่ที่ http://php.bungkhan.com/province/province/sql ครับ

ขั้นตอนมีดังนี้

ขั้นตอนที่ 1. กำหนดการเชื่อมต่อฐานข้อมูล (http://www.yii.in.th/forum/index.php?topic=30.0)


/* ================== ถ้าอยากติดต่อ ฐานข้อมูลครับ =================*/

'db'=>array(
'connectionString' => 'mysql:host=localhost;dbname=thai',
'emulatePrepare' => true,
'username' => 'root',
'password' => '',
'charset' => 'utf8',
),
/*========================ถ้าอยากติดต่อ ฐานข้อมูลครับ ==============*/


ขั้นตอนที่ 2. ทำการเชื่อมต่อฐานข้อมูลและประมวลผลข้อมูล


class ProvinceController extends Controller{

public function actionSql(){


$sqlStatement ="SELECT thai_province.thaiName, thai_slogan.slogan FROM thai_slogan RIGHT Join thai_province
ON thai_slogan.provinceID = thai_province.provinceID";

$connection=Yii::app()->db;
$connection->active=true;
$command=$connection->createCommand($sqlStatement);
$command->execute();
$reader=$command->query();

$this->render('exam1', array(
'reader'=>$reader)
);
}

....
....
}



ขั้นตอนที่ 3. นำข้อมูลมาแสดงผลในส่วนของ View


foreach($reader as $row){
print "
  • ".$row['thaiName']."
  • ";
    }





  • ตัวอย่าง : http://php.bungkhan.com/province/province/sql

    ศึกษาเพิ่มเติม : http://www.yiiframework.com/doc/guide/1.1/en/database.dao

    ไกล้ปีใหม่ไทยแล้วก็ขอให้ทุกท่านมีความสูขมากๆนะครับ



    การสร้าง Attributes ตามที่เราต้องการ (Virtual Attributes) ใน model class ครับ

    การสร้าง Attributes ตามที่เราต้องการ (Virtual Attributes) ใน model class

    เป็นการสร้าง Attributes โดยเราสามารถนำมาปรับแต่งตามที่เราต้องการ โดยกำหนดในคลาสที่ถ่ายทอดมาจาก CActiveRecord ครับดังนี้

    จากรูป

    http://127.0.0.1/pay/er/pay_genre.png

    ขั้นตอนที่ 1. กำหนด เมทอดใน model class เช่นผมกำหนด getMyTest()

    class Genre extends CActiveRecord {
    .....
    .....
           public function getMyTest() { 
    
                      return "รหัสเงิน : ".$this->genreID . " ชื่อ :" . $this->genreName;
          } 
    .....
    .....
    
    } 
    

    ขั้นตอนที่ 2. การแสดงค่าใน View ดังนี้

    ผมทดลองแสดงใน _view.php ครับ (_view.php ที่ถูกสร้างจาก gii ครับ)

    echo CHtml::encode($data->myTest); 
    
    

    ตัวอย่างผลการแสดงข้อมูล








    วันอังคารที่ 5 เมษายน พ.ศ. 2554

    การเรียกใช้ข้อมูลใน CActiveDataProvider


    http://php.bungkhan.com/pay/er/pay_genre.png


    จากรูปผมสร้างโมเดลชื่อ Genre
    และกำหนดในส่วนของ action ใน Controller ดังนี้


    $dataProvider=new CActiveDataProvider('Genre');

    เวลาแสดงใน view ส่วนมากก็ส่งให้ CListView เป็นต้น
    เช่น



    วันเสาร์ที่ 2 เมษายน พ.ศ. 2554

    ชิวิตคนเราต้องสู้ต่อไป+การใช้งาน layout ครับ

    วันนี้ผมต้องขี่รถมอเตอร์ไซต์ข้ามภูพานจากจังหวัดกาฬสินธุ์ไปจังหวัดสกลนคร ได้เห็นภาพบรรยากาสหลายอย่างทั้งคนกำลังหาของป่า คนกำลังเลี้ยงวัวเลี้ยงควาย คนขายของป่าตามข้างทาง ทำให้ผมมีความสูขยังงัย (ยังใง, ยังไง ผมว่าหลายคนเขียนผิด ต้องใช้ ยังไง ถูกใหมครับ) สาเหตุที่ผมใช้ชื่อชาวบ้านป่าบ้านดอยเพราะเหตุนี้แหละเพราะชอบธรรมชาติ อยู่ตามบ้านนอกบ้านนา มีความสูข แต่ตอนขี่รถอยู่บนเขากก็กลัวเหมือนกันกลัวรถงอแง บนเขาบ้านห่างกันอยู่ด้วย

    ทำให้มองหรือจินตนาการตามแบบชาวบ้านป่าบ้านดอยว่า คนเราอยู่สุงแค่ใหนสุดท้ายต้องลงมา เช่นเครื่องบินถ้าไม่ยอมลงจอดสุดท้ายต้องตกลงมาเอง จะเลือกตกลงมากระแทกพื้นหรือลงมาบนพื้นแบบนิ้มๆเท่านั้นเอง อีกอย่างยานอวกาศซึ้งไม่ต้องตกลงมายังพื้นโลกก็ได้เพราะลอยอยู่บนอวกาศ แต่สุดท้ายก็จะกลายเป็นขยะอวกาศ ต่างกับยานอวกาสที่กลับมายังพื้นโลกบางครั้งอาจจะเก็บอยู่ในพิพิธภัณฑ์ คนก็ยังรู้จักคนก็ยังเล่าขาน

    คนหลายคนอยู่สูงแล้วไม่มองด้านล่าง หรือมองว่าเขาไม่รวยเท่าเรา เขาไม่มีตำแหน่งหน้าที่การงานเหมือนเรา แต่จริงๆแล้วผมว่าพี่ป้าน้าอาที่เขากำลังเลี้ยงวัวเลี้ยงควายอยู่เขามีความสูขมากกว่าคนที่มีตำแหน่งใหญ่โตเสียอีก

     

    ว่าแล้วเรากลับมาที่ Yii Framework เราดีกว่า วันนี้ผมจะพาไปรู้จักวิธีแบ่งคอลัมน์ในหน้าเว็บเวลาจะแสดงข้อมูลครับ