Menyimpan multiple checkBoxList dalam satu file

Salam kenal buat rekan-rekan semua, saya pengguna baru Yii Framework.

Ketika saya mencoba membangun website menggunakan Yii Framework awalnya sangat mudah, karena banyak tutorial yang bisa saya pelajari. Ketika saya mulai membuat form dan mencoba menyimpan nilai dari checkboxlist dalam satu fild kedalam database tidak ada masalah, masalahnya muncul ketika akan menampilkannya kembali kedalalam form update.

misalnya saya mempunyai list tentang hobby seperti dibawah ini:

value | Hobby


1 | Berenang

2 | Photography

3 | Bersepeda

4 | Olahraga

Ketika di click tombol simpan maka di databases akan tersimpan nilai checkboxlist misalnya 2,3,4 pada kolom hobby,

ketika nilai itu saya panggil kembali untuk proses perbaikkan checkboklist tersebut tidak bisa terpilih sesuai apa yang ada pada kolom hobi yang berisi nilai 2,3,4.

Mungin rekan-rekan pernah mengalami kasus seperti ini, bagaimana ya solusinya?

ane belum pernah pakai tapi agan mgkin bisa coba tampilkan codingnya??

btw agan pakai activeCheckBoxList atau checkBoxList?

Coba


View:

echo CHtml::checkBoxList('NamaModel[idhobby]', $this->idHobby2array($model->idhobby), CHtml::listData(Hobby::model()->findAll(),'value','hobby'))


UserController:

public function idHobby2array($id) // $id = 2,3,4

{

	return preg_split('/\s*,\s*/',trim($id),-1,PREG_SPLIT_NO_EMPTY);

}

wah mantep nih agan ibiz4,

saya juga mau ngajukan solusi yang mirip dengan pakai array, tapi sepertinya yang ini lebih mantep…

minta contoh koding lengkap dunk…

udah stuckk nie…

yg di action bag rendernya…

q coba error kalo ga checkboxnya ga ada yg ke-select…

hiks…

udah jadi gan…

tq…

liat caranya dong…sama cara nampilinnya lagi pas update

form:


<div class="row">

	

		<?php $data = CHtml::listData(Country::model()->findAll(array('condition'=>'status=1')), 'id_country', 'name');

	//	print_r($data);exit();

		echo CHtml::checkBoxList('id_country', $country, $data); ?>

	</div>

controller


public function actionUCountry2()

	{

		$id_content= $_GET['id'];

		$country=$this->loadCountry($id_content);

		$this->render('_formCountry2',array('country'=>$country));

		

	}


public function loadCountry()

	{

		$id=$_GET['id'];


		$model=ContentCountry::model()->findAllBySql('select * from content_country where id_content= '.$id);

		if($model!==null) {

        $criteria = new CDbCriteria();

        $criteria->select = 'id_country';

        $criteria->condition = 'id_content = ' . $id;

        $catCons = ContentCountry::model()->findAll($criteria);

        $ids = array();

        foreach($catCons as $catCon) {

                array_push($ids, $catCon->id_country);

        }

		//print_r($ids);exit();

        $model['id_country'] = $ids;

		//print_r($model['id_country']);exit();

		}

		return $model['id_country'];

	}

waw ribet juga ya,kalau untuk masalah gambar gimana ya?klo ane mau update,ane harus masukin gambar dlu lagi pdahal sebelumnya udah di upload :(

terus ane ada autocomplete,dia nyimpen di db cuma integer,jadi pas di update yg tampil id daerah nya doang,ane dah coba kasih




$this->widget('zii.widgets.jui.CJuiAutoComplete', array(

		    'model'=>$model,

		    'attribute'=>'regency_id',

		    'value'=>$model->regency->regency_name,

		    'id'=>'regency-id',

		    'name'=>'regency_id',

		    'source'=>$this->createUrl('LksaData/suggestRegency'),

		    'htmlOptions'=>array(

		     //'size'=>'40'

tpi kok masih sama aja ya?

Gak yakin sih… tapi mgkin saja gara2 agan taruh


'model'=>$model,

'attribute'=>'regency_id',

makanya dia prioritasin ambil id… kalau mau dia tampilkan name saya rasa musti dihilangin kali yah dua attribute itu

Klo diilangin g ngaruh ya pas mau create new data?kalau masalah photo yg mesti upload lg ad masukan g gan?

ngaruh harusnya. Oleh karena itu kamu harus tambah attribute


'name'=>'NamaModel[regency_id]'

kalau upload mungkin thread sini bisa membantu:

http://www.yiiframework.com/forum/index.php?/topic/5419-optional-upload-file-when-update-a-record/page__p__27940#entry27940

dan disini ada comment wiki yang juga bahas

http://www.yiiframework.com/wiki/2/#c3137

semoga membantu~

dapet dari facebook group yii framework indonesia


public function actionUpdate($id)

{

$model=$this->loadModel($id);

$oldname=$model->preview_filename; 

if(isset($_POST['BannerPreview']))

{

$model->attributes=$_POST['BannerPreview'];

$model->preview_filename=CUploadedFile::getInstance($model,'preview_filename');

if($model->preview_filename==''):

$model->preview_filename=$oldname;

endif;

if($model->save())

if($model->preview_filename!=$oldname):

$model->preview_filename->saveAs(Yii::app()->basePath . '/../uploads/'.$model->preview_filename);

endif;

$this->redirect(array('view','id'=>$model->preview_id));

}


$this->render('update',array(

'model'=>$model,

));

}




$this->widget('zii.widgets.jui.CJuiAutoComplete', array(

		    'name'=>'LksaData[regency_id]',

		    'value'=>$model->regency->regency_name,

		    'id'=>'regency-id',

		    'name'=>'regency_id',

		    'source'=>$this->createUrl('LksaData/suggestRegency'),

		    'htmlOptions'=>array(



sekarang di update bisa gan keluar daerahnya langsung,tapi klo create value nya kan masih kosong jadi get property non object :( ada masukan lagi?