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
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
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
hal yg paling gw suka di Yii, ada widgetnya
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
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…
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…
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