Witajcie!
Pisałam już w wątku angielskojęzycznym, ale mam wątpliwości, czy mój angielski jest wystarczający by wytłumaczyć z czym mam kłopot.
Mam na stronie dropDownList z nazwiskami klientów a pod spodem CJuiTabs gdzie w kolejnych zakładkach mam pogrupowane informacje o kliencie: "Dane adresowe", "Adres korespondencyjny", "Informacje kredytowe" i tak dalej.
plik: pozyczka/_form.php
echo $form->dropDownList($model, 'klient_id', GxHtml::listDataEx(Klient::model()->findAllAttributes(null, true)),array(
'prompt'=>'Wybierz klienta',
'ajax'=>array('type'=>'POST',
'url'=>CController::createUrl('Pozyczka/ajaxtabs'),
'update'=>'#yw0_tab_"+$("#yw0").tabs("option","selected")+"',
'data'=>'js:{tab:$("#yw0").tabs("option","selected"),
klient_id:$("#Pozyczka_klient_id").val()}')));
$this->widget('zii.widgets.jui.CJuiTabs',array(
'tabs'=>array(
'Adres'=>array('ajax'=>array('ajaxtabs_kontakt')),
'Adres korespondencyjny'=>array('ajax'=>array('ajaxtabs_kontakt_kor')),
'Dane osobowe'=>array('ajax'=>array('ajaxtabs_dane_osobowe')),
'Dochody'=>array('ajax'=>array('ajaxtabs_dochody')),
'Pożyczki'=>array('ajax'=>array('ajaxtabs_pozyczki')),
),
'options'=>array(
'collapsible'=>true,
'selected'=>0,
'ajaxOptions'=>array('data'=>'js:{klient_id:$("#Pozyczka_klient_id").val()}','type'=>'POST'),
),
'htmlOptions'=>array(
'style'=>'width:300px;'
),
));
plik: PozyczkaController.php
public function actionAjaxTabs(){
if(isset($_POST['tab'])) $tab=$_POST['tab'];
else $tab=0;
switch($tab){
case 0: $this->renderPartial('_klient_kontakt',array('klient_id'=>$_POST['klient_id']));break;
case 1: $this->renderPartial('_klient_kontakt_kor',array('klient_id'=>$_POST['klient_id']));break;
case 2: $this->renderPartial('_klient_dane_osobowe',array('klient_id'=>$_POST['klient_id']));break;
case 3: $this->renderPartial('_klient_dochody',array('klient_id'=>$_POST['klient_id']));break;
case 4: $this->renderPartial('_klient_pozyczki',array('klient_id'=>$_POST['klient_id']));break;
}
}
public function actionAjaxTabs_kontakt(){
$this->renderPartial('_klient_kontakt',array('klient_id'=>$_POST['klient_id']));
}
public function actionAjaxTabs_kontakt_kor(){
$this->renderPartial('_klient_kontakt_kor',array('klient_id'=>$_POST['klient_id']));
}
...
plik: _klient_kontakt.php
if($klient_id=="" or $klient_id==0) $model= new Klient;
else $model=$this->loadModel($klient_id,'Klient');
$this->widget('zii.widgets.CDetailView',array(
'data'=>$model,
'attributes'=>array(
'telefon1',
'telefon2',
'zam_ulica',
'zam_nr_domu',
'zam_lokal',
'zam_kod_pocztowy',
'zam_miejscowosc',
),
)
);
Kiedy wybieram klienta z dropDownList to chcę, żeby uaktualniały się dane na aktualnie wybranej zakładce. I to mi działa.
Ale kiedy mam kogoś wybranego z listy i zmieniam zakładkę, to chciałabym, żeby ta nowa zakładka sprawdzała kto jest wybrany i zaciągała sobie z bazy danych dane dotyczące tego klienta (a dokładnie fragment danych odpowiedni do wybranej zakładki). No i to mi nie działa. Z var_dumpów wynika, że nikt nie jest wybrany w dropDownList.
Pomóżcie proszę.