[solve] combo box on change

batch

jobs_id

id_advertiser -->tbl_advertiser

id_product_caterogry —>tbl_advertiser_category

tbl_advertiser_category

id_advertiser–>tbl_advertiser

id_product–>tbl_product

create BATCH

jadi pas combo box advertiser di pilih…kombo box product lngsng short menurut tabel advertiser_category

Gan coba yang ane jawab di atas itu di coba dulu (jangan dimodifikasi pake model dulu).

Nah, klo array biasa ud jalan, baru deh pake model.

kalau model 1 dropdown ke 1 dropdown da jalan putri…nah mslhnya mau ke 2 arah…ke dropdown sama ke text field…

katanya ga bisa pake ‘update’=> mst pake ‘succes’=> dan Json…

dan da coba2 ga jalan2…makanya mau coba jquery murni…gmn y caranya??saya ga perna pake jquery soalnya ni:blink:

saya juga blm bisa klo pake Jquery :).

Tapi coba di controlernya tambah lagi code untuk nge-find data buat dimasukin ke textField.

Misal:

  1. dari [combo_1] ke [combo_2] <<< ini kan ud dapet.

  2. berikutnya kita find dari [combo_2]

ditambahin di ini controlernya, pisahin aja dulu (beda action). ntar klo sukses baru gabung.




<?php

echo CHtml::beginForm();

$varId = $_POST["Adertiser"]["datanya"]; //ini textfield yang input

$model = advertiser::model()->findByAttributes(array('attribut=>$varId));

if(!empty($model))

{

$data = $model->atributData;

}	

echo $data;

?>



di view tambahin ini




<?php

CHtml::activeTextField($model,'data',array('ajax'=>array('type'=>'POST',  

			'url'=>Yii::app()->createUrl('controlernya/actionnya'),

			'update'=>'#tampilkan_isi',

		     // 'data'=>'js:javascript statement',

			),));

echo CHtml::endForm();

?>

<span id="tampilkan_isi" style="color:green">*</span>






<span id="tampilkan_isi" style="color:green">*</span> // untuk ngecek aja ini , nanti klo sukses id pinahin ke komponen yang diinginkan.

cara kerjanya, begitu input di textField lalu tekan TAB, ntar ada Text hasil dari id="tampilkan_isi"

putri di post sebelah kan bilangnya pake ajax ma activeFieldText

nah bole liat ajaxnya ga??

stuck di si CJSON::encode ne…hix…

baris ini bukan ajax ya gan?.

aku cuma pake itu soalnya, di controler aku cuma kasih find biasa kyk yang aku tulis sebelumnya.

ajax itu…nah saya pake itu kl 1 emng bisa…skrng mau ke 2 tempat ga bisa katanya pake update…huehue…mst pake si Json…

Hmmm klo 2 ane blm coba sih, ntar ane coba dulu deh klo 2.

Ntar klo berhasil ane bales di post ini.

putri nanya dunk

kalu query kan bisa begini

kalau di yii bisa ga si??

saya coba begini ga jalan…


$data = ProductCategory::model()->findAll('id in (select  id_product_category from tbl_advertiser_category where id_advertiser  =:parent_id)',array(':parent_id'=>(int)$id_advertiser));



ane ud nemu ini, tapi kita bahas yang ini dulu aja ya.

itu niatnya mau query dari tbl_product_category yang Id-nya di ambil dari tbl_advertiser_categoty ya?

klo gini gimana




<?php 

$id='2';

$idnya = AdvertiserCategori::model()->findAll(array('id'->$id));

ambildata = ProducCategori::model()->findAll(array('id'->$idnya->id));

?>



maksudnya kaya gini y??





 	$data1=AdvertiserCategory::model()->findAll('id_advertiser=:parent_id', 

	 array(':parent_id'=>(int)$id_advertiser));


	$data = ProductCategory::model()->findAll('id in (:a)',

	array(':a'=>(int)$data1->id)




error ga bisa ni…

soalnya mau dikirim pake CJSON ne…

Semoga ini bisa Membantu… Ane dah Coba dan Berhasil…!

sebelumnya Ane buat method di model Country




public function getCountries() 

	{

        $criteria = new CDbCriteria();

        $criteria->condition = "is_active = 1";

        $criteria->order = "name ASC";

		$countries = $this->findAll($criteria);

		return $countries;

	}



ini code di view, _form.php




<div class="row">

		<?php echo $form->labelEx($model,'country_id'); ?>

		<?php echo $form->dropDownList($model,'country_id',CHtml::listData(Countries::model()->getCountries(),'id','name'),

                        array(

                                'prompt'=>'Selecione um grupo',

                                'ajax'=> array( 

									'type' => 'POST',

									

// mengirimkan data ke controller Cities/DinamicCities

'url'=>CController::createUrl('cities/dynamicCities'),


									'update'=>'#'.CHtml::activeId($model,'region_id'), 

                                )    

                        )   

                    );

        ?>

		<?php echo $form->error($model,'country_id'); ?>

	</div>


	<div class="row">

		<?php echo $form->labelEx($model,'region_id'); ?>

		<?php echo $form->dropDownList($model,'region_id',array()); ?>

		<?php echo $form->error($model,'region_id'); ?>

	</div>




di kode form diatas memanggil method getCountry yang ada di Model Country diatas… Kemudian mengirimkan data ke controller

nah di Controller nya kodenya seperti ini…





public function actionCreate()

	{

		$model=new Cities;


		// Uncomment the following line if AJAX validation is needed

		// $this->performAjaxValidation($model);


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

		{

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

			if($model->save())

				$this->redirect(array('admin'));

		}


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

			'model'=>$model,

		));

	}


public function actionDynamicCities()

	{

		$data=Regions::model()->findAll('country_id=:country_id', 

											array(':country_id'=>(int) $_POST['Cities']['country_id'])

										);

	 

		$data=CHtml::listData($data,'id','name');

		foreach($data as $value=>$name)

		{

			echo CHtml::tag('option',array('value'=>$value),CHtml::encode($name),true);

		}

		

	}




ini Ane dah Mencoba dan Sukses… Kalo ada yang masih bingung PM Ane Aja…!

perna coba di form metodnya get ga??

saya coba cara yang "UPDATE" di advance searchnya yang dari GII itu ga bisa ane gan

dy muncul pilihan kombo boxnya tapi kosong…

1868

untitled.JPG

ni contoh gambarnya gan

…mohon bantuanya

kode nya gimana gan?? biar bisa ngecek salahnya diman…

da saya ubah lg pake JSON gan…jalan mulus…hehehe

tq y gan responya…sangat membantu…:)