nambahin on_change pada dropdownlist gimana ya

hormat pada suhu…

kalo mau nambahin on_change pada dropdownlist gimana ya…

misal : kita pilih nama (combobox) dan setelah dipilih keluar alamat.

mohon pencerahan…

thx

bisa pake jquery khan?




$("#namadropdown").chage(function(){

  alert($("#namadropdown").val());

});



tull gan pake jquery ajah,

masalahnya adalah, jika agan mengenerate sejumlah Combo di page yang sama, praktis agan harus punya Combo dengan nama yang beda-beda…

masalahnya lagi, jika combo itu bagian cari form, padahal formnya Yii namanya sudah diatura agar enak relasinya…

nah ini sudah ribet banget make form, di jadikan ajax, tapi banyak form di pagenya trus combonya namanya jadi sama semua… nah begitulah…

apakah masalah siagan sudah samape disini atau sudah cukup dengan jawaban suhu petra,…

makasih mas, sy coba dulu

blom nyampe kesitu gan…he he…blom kepikiran

ya kalo emang bikin combobox yang punya event onchange yang mirip2 ya tinggal dibikin Widget baru aja…

ngapain susah2…

eh emang bisa ya gan… ajarin dunk…

misal ada form nih




//dll

$form->dropDownList($model,'pilihan',array('class'=>'jquery-class-pilihan');

//dll



di view




foreach($model as $row){

    $this->renderPartial('_vieformtadi',array('model'=>$row) );

}



trus fi jsnya




$(document).ready(function(){

        $('.jquery-class-pilihan').change(function( ){

                 // gimana terusannya, agar, action nya exklusif ke masing form terkait?

                 // atau ada pendektan yang berbeda gan....

        });

})



Yah, kira2 gini lah yah…

belum saya tes juga :P

ngira2 doang… semoga bener…




<?php

// /protected/components/MyComboBox.php


class MyComboBox extends CWidget {


	public $model;

	public $attribute;

	public $data = array();

	public $options = array();

		

	public function run(){


		$this->options = CMap::mergeArray(

			$this->options, 

			array(

				'id' => $this->id

			));


		$this->render('mycombobox');

	}

}



ini di viewnya




<?php

// /protected/components/views/mycombobox.php

Yii::app()->clientScript->registerCoreScript('jquery');

Yii::app()->clientScript->registerScript('combobox'.$this->id, "

	jQuery('#{$this->id}').change(function(){

		alert('ini combobox #{$this->id}'); //ini nanti berbeda-beda tiap combobox

	});

");


echo CHtml::ActiveDropDownList($this->model, $this->attribute, $this->data,  $this->options);






<?php

//cara pakainya


$this->widget('MyComboBox', array(

	'model' => $model,

	'attribute' => 'pilihan',

));



sekali lagi, semoga bener :P

hal yg paling gw suka di Yii, ada widgetnya :D

kalo mau tiap combobox actionnya beda-beda yaa… tambahin attribut di class MyComboBoxnya yang isinya script yang bakal dijalanin tiap onChangenya si masing-masing combobox,

atributnya diselipin di kode onChange jQuerynya

saya pake ini gan, tp unt nampilin data yg lain (misal alamat ) ga tau euy…hi hi…

<?php echo $form->dropDownList($model,‘pengirim’,CHtml::listData(Pengirim::model()->findAll(), ‘id’, ‘name’),array(‘onchange’=>"$(’#show’).val($(this).val());")); ?>

<?php echo CHtml::textField( ‘show_down’, ‘’, array(‘id’=>‘show’) ) ?>

loh kalo mau sejumlah combo dengan nama yang sama bisa juga kok.




//contoh: kita punya 2 combo box dengan id "combo"

//combo box terdapat didalam suatu div dengan class bernama content maka:

$(".content").each("select").each(function(i){

      var $currentElement=$(this)

      if($currentElement.attr("id")=="combo")$currentElement.attr("onChange","alert('toket gede');");

});



ato ga ya gini aja <select onchange="tes(this)">

kita buat function tes(data)

this kan luas banget,kalo mau ambil nilainy tgl this.value

Pada kasus lain sy membutuhkan on_change untuk load suatu halaman, namun yang berubah adalah halaman pada kolom tengah, jadi combobox itu dijadikan sebagai bagian dari menu utama sebagai query. Mungkin lettaknya aja yg berbeda.

ini contoh kalau menggunakan prosedural biasa

combo_action.php


<?php

mysql_connect("localhost","root","");

mysql_select_db("mydatabase");


echo "<form method=get action=combo_action.php>";

echo "Fakultas : <select name='fakultas' onChange='this.form.submit()'>";


echo "<option value=0 selected>- Pilih Fakultas -</option>";


$sql=mysql_query("select * from fakultas");

while ($data=mysql_fetch_array($sql)){

  if ($data[id_fak]==$_GET[fakultas])

     echo "<option value=$data[id_fak] selected>$data[nama_fak]</option>";

  else

     echo "<option value=$data[id_fak]>$data[nama_fak]</option>";

}	

echo "</select></form>";

	

if (isset($_GET[fakultas])){

	echo "Program Studi : <br>";

	$sql2=mysql_query("select * from prodi where id_fak='$_GET[fakultas]'");

	while ($row=mysql_fetch_array($sql2)){

  	echo "$row[nama]<br>";

	}

}

?>

ini hasilnya

1817

111.JPG

itu bagaimana ya kalau di yii untuk ngeload ke suatu halaman, ga harus pakai widget juga ga papa yang penting bisa on_cange aja, apakah ada solusinya? mohon sekali bantuannya

@John_453P

tak kasih link aja ya…, kayaknya sesuai dengan kasus ini:

dependent-dropdown

permisi suhu" dan agan" sekalian …

ane punya masalah yang sama tapi masalahnya gini …

nah kira kira gmn ya ??

di Formnya




<script type="text/javascript">

	function tes3()

		{

    		<?php echo CHtml::ajax(array(

            		// the controller/function to call

            		'url'=>CController::createUrl('bts'),//manggil action yang ada di controller

     

             	

					'data'=>array('yang_dikirim'=>'js:$(\'#namaModel_namaFieldYangMauDikirimNilaiNya\').val()',//kirim data ke controller

               	// To pass multiple fields, just repeat eg:

                            		),

            		'type'=>'post',

            		'dataType'=>'json',

            		'success'=>'function(data)

            		{

			     $("#namaModel_namaFieldYangMauDiUbah").val(data.price);

                 	}

                 	',

            		))?>;

    		return false;  

		} 

  </script>



di controllernya





public function actionBts()

{

   $tes = Yii::app()->request->getParam('yang_dikirim');

	$price = 1500000;

			// return data (JSON formatted)

			echo CJSON::encode(array(

				'price'=>$price,

			)); 

		  	Yii::app()->end();

	

	

}




trus tambahin di dropdownnya




CHtml::listData(CostCentre::model()->findAll(), 'id','cost_centre_name'),array('onchange'=>'{tes3();}','empty'=>'--Please Select One--'));

dan akses rulenya di tambahin…actionBtsnya di ksh allow.

semoga berhasil… ;D ;D

no error tapi account_code si kerani’a tetep ga masuk ke textField dibawahnya gan …

masta…gmn kalo id nya itu bersifat array…

saya agak ga gerti mksdnya id bersifat array… :lol:

maksudnya gini gan

<?php echo $form->textField($model,‘KODEBARANG[]’,array(‘size’=>12,‘maxlength’=>12)); ?>

jquery nya gmn? he he

ni gmn ceritanya kok bisa array y??hahaha…

cuman ubah nilai textfieldnya dari dropdown bukan??

kalau cuman ubah nilai textfield nya doang si sukses tadi saya tes pake json…kl savenya ga <_< :lol: