[Résolu] Mise À Jour D'un Textarea Avec Une Liste Déroulante

Bonjour,

Je suis nouveau parmis vous et j’ai une question svp.

Alors je veux mettre à jour un textArea avec une liste déroulante (dropDownList).

c.à.d. je veux si je séléctionne “A” dans la liste, mon textArea devient “A”, si je reselectione “B” il devient “A,B” … enfaite c’est un ajout.




   <?php

      echo $form->dropDownList(

	Note::model(),                    

	'note_id', 

	CHtml::listData(Note::model()->findAll(), 'note_id', 'name'),

	array('style'=>'width:580px;'));         

   ?>

   <?php echo $form->textArea($model,'notes',array('rows'=>3, 'cols'=>69)); ?>




Merci infiniment

slt

je te propose l’insertion du code suivant

dans ta vue


echo CHtml::dropDownList('noms_des_notes','', CHtml::listData(Note::model()->findAll(), 'note_id', 'name'),

array(

'ajax' => array(

'type'=>'POST',

'url'=>CController::createUrl('currentController/maj_mes_notes'), //url poour la maj.

'update'=>'#mes_notes_id', //l'objet à mettre à jour

))); 

 

//la représentation de l'objet à maj pour l'instant vide...

echo CHtml::textArea('mes_notes_id','', array());

puis dans ton controleur


public function actionMaj_mes_notes()

{

     $data=Notes::model()->findbyPk('parent_id=:parent_id', 

                  array(':parent_id'=>(int) $_POST['note_id']))->name;

 

    echo CHtml::tag('value',

                   array('value'=>$data));

    }

}

attention j’ai pas testé…j’espère que ça va t’aider…

bien sur n’oublie pas d’authoriser l’accès dans tes règles (accessrules)

Bonjour,

Merci infiniment pour la réponse.

J’ai fais ce que Tu m’as dis mais ça marche pas, le deuxieme champs reste toujours vide.


		<?php 

			echo CHtml::dropDownList('noms_des_notes','', CHtml::listData(Remarque::model()->findAll(), 'remarque_id', 'name'),

			array(

			'ajax' => array(

			'type'=>'POST',

			'url'=>CController::createUrl('devis/MajMesNotes'), //url poour la maj.

			'update'=>'#mes_notes_id', //l'objet à mettre à jour

			))); 

			 

			echo "<br /><br /><br /><br />";

			//la représentation de l'objet à maj pour l'instant vide...

			echo CHtml::textArea('mes_notes_id','', array());

		?>




	public function actionMajMesNotes()

	{

	     $data=Remarque::model()->findbyPk('parent_id=:parent_id', 

	                  array(':parent_id'=>(int) $_POST['remarque_id']))->name;

	 

	    echo CHtml::tag('value',array('value'=>$data));

	}


			array('allow',  // allow all users to perform 'index' and 'view' actions

				'actions'=>array('index','view','majmesnotes'),

				'users'=>array('*'),

			),

T’as une idée stp?

Merci

Salut,

avec un petit peu de javascript ça passe tout seul (ou presque)




<?php

	echo CHtml::dropDownList('ctrl_name', '1', array('1'=>'value1', '2'=>'value2', '3'=> 'value3'),

	     array('onChange'=>'$("#textarea").append(" "+$(this).find("option:selected").text());')

	);

?>

<textarea name="textarea" id="textarea" cols="30" rows="10"></textarea>



J’espère que ça va t’aider…

ciao

B)

Bonjour,

Merci infiniment pour la réponse.

Ça marche à 99% (t’as raison presque :) ), il me reste un petit truc :

Quand j’ajout du texte à mon texarea via le dropDownList ça marche bien, mais dès que je modifie manuellement le textarea, l’ajout via le dropDownList ne fonctionne plus.

Votre aide svp

Merci

ah ah … tu me rajoutes une demande là !

No problemo




<?php

echo CHtml::dropDownList('ctrl_name', '1', array('1'=>'value1', '2'=>'value2', '3'=> 'value3'),

  	array('onChange'=>'$("#textarea").val($("#textarea").val()+" "+$(this).find("option:selected").text());')

	);

?>

<textarea name="textarea" id="textarea" cols="30" rows="10"></textarea>



Là j’espère avoir atteint 99,9% ;D

ciao

B)

Bonjour,

Merci infiniment pour la réponse et ce n’est pas 99,99% , cette fois c’est 100% :)

Le 1 mai commence bien :)

Merci encore et à la prochaine :)