Yii Framework Forum: [Résolu] Mise A Jour D'un Listdata Via Dropdownlist Et Ajax - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

[Résolu] Mise A Jour D'un Listdata Via Dropdownlist Et Ajax Mise a jour d'un listData via dropDownList et AJAX Rate Topic: -----

#1 User is offline   amical_3 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 14
  • Joined: 08-March 13

Posted 07 June 2013 - 08:16 AM

Bonjour,

J'ai intégré le sujet suivant http://www.yiiframew...ndent-dropdown/

ça fonctionne super bien, sauf que je voulais rajouter une valeur "empty" à la liste Country.

Quand je clique sur l'un des élèments de la liste "Country" ça marche, il filtre bien, car contre dès que je clique sur le champ empty "Select country) il donne pas la liste entiere de "city" et je vois une erreur 500.

Votre aide svp.

Merci

$country=CHtml::listData(Country::model()->findAll(), 'country_id', 'name');
echo $form->dropdownlist($model,'country_id',$country,array('empty'=>'Select country',
	'ajax'=>array(
	'type'=>'POST',
	'url'=>CController::createUrl('country/test'),
	'update'=>'#Country_city_id',
	'data'=>array('country_id'=>'js:this.value'),
	),
	));

echo $form->dropDownList(
	$model,                    
	'city_id', 
	CHtml::listData(City::model()->findAll(), 'city_id', 'name'),
	array('empty'=>'Select city','style'=>'width:125px;'));

0

#2 User is offline   grandoom 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 34
  • Joined: 11-July 12

Posted 10 June 2013 - 05:56 AM

d'après le tuto place une array vide dans la 2ième Droplist CHtml::dropDownList('city_id','', array());

puis effectivement il faut editer le controlleur 'actionTest' et rajoute une condition d'éxécution car il va planter lorsque la valeur de country_id est nulle...

if $_POST['country_id'] {

( 1 -je met à jour l'objet 'city_id')
$data=Location::model()->findAll('parent_id=:parent_id',
array(':parent_id'=>(int) $_POST['country_id']));

$data=CHtml::listData($data,'id','name');
(2 -je rajoute une valeur 'empty' avant update de la droplist)
echo CHtml::tag('option',
array('value'=>'empty'),'',true);

foreach($data as $value=>$name)
{
echo CHtml::tag('option',
array('value'=>$value),CHtml::encode($name),true);
}



}

après il y a peut être une autre astuce...
0

#3 User is offline   amical_3 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 14
  • Joined: 08-March 13

Posted 10 June 2013 - 05:01 PM

Merci infiniment.

j'avais fais une erreur

findAll('country_id=:parent_id');


au lieu de
findAll();


ça marche nickel, Merci
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users