Problème De Sélection Entre Deux Onglets




			$this->widget('zii.widgets.jui.CJuiTabs',array(  

			     'tabs'=>array(  

			            'Langues'=>array('id'=>'test-idlangue','content'=>$this->renderPartial(  //Définir les Relations d'une application

			                                         '_renderpagetableapplication',  

			                                         array('Values'=>'This Is My Renderpartial Page 1',

			                                         	   'model'=>$model,

			                                         	   'paramscste'=>$paramscste,

			                                         	   'idrelation'=>$paramscste['idrelationlangueapplication'],

			                                         	   'typedonnees'=>$paramscste['langue'],

			                                         	   'idobjet'=>$paramscste['idobjetlangue']),TRUE  

			                                         )),			                                                

			            'Tables'=>array('id'=>'test-idtable','content'=>$this->renderPartial(  // Définir les Tables d'une Application

			                                         '_renderpagetableapplication',  

			                                         array('Values'=>'This Is My Renderpartial Page 2 ',

			                                         	   'model'=>$model,

			                                         	   'paramscste'=>$paramscste,

			                                         	   'idrelation'=>$paramscste['idrelationtableapplication'],

			                                         	   'typedonnees'=>$paramscste['table'],

			                                         	   'idobjet'=>$paramscste['idobjettable']),TRUE  

			                                         )),   

			            'Relations Tables'=>array('id'=>'test-idrelation','content'=>$this->renderPartial(  //Définir les Relations d'une application

			                                         '_renderpagerelationapplication',  

			                                         array('Values'=>'This Is My Renderpartial Page 3',

			                                         	   'model'=>$model,

			                                         	   'paramscste'=>$paramscste,

			                                         	   'idrelation'=>$paramscste['idrelationrelationapplication'],

			                                         	   'typedonnees'=>$paramscste['relation'],

			                                         	   'idobjet'=>$paramscste['idobjetrelation']),TRUE  

			                                         )),			          

			         //'Relations Données'=>'Content for tab 1',  

			         // panel 3 contains the content rendered by a partial view  

			         'AjaxTab'=>array('ajax'=>$this->createUrl('ajax')),  

			     ),  

			     // additional javascript options for the tabs plugin  

			     'options'=>array(  

			        'collapsible'=>true,  

			     ),  

			     'id'=>'MyTab-Menu',  


			 ));  



_renderpagerelationapplication.php




<?php


	echo CHtml::beginForm($this->createUrl('moveTable?idparent='.$model->id.'&idrel='.$idrelation.'&typedonnees='.$typedonnees));

	$this->widget('ext.widgets.multiselects.XMultiSelects',array(

		'leftTitle'=>'Données n\'appartenant paskkkkk à l\'application',

		'leftName'=>'Table'.$typedonnees.'[tablenonapplication][]',

		'leftList'=>Table::model()->chercherTablesNonApplication($typedonnees,$model->id,$idrelation,$idobjet),

		'rightTitle'=>'Données appartenant pas à l\'application',

		'rightName'=>'Table'.$typedonnees.'[tableapplication][]',

		'rightList'=>Table::model()->chercherTablesApplication($typedonnees,$model->id,$idrelation,$idobjet),

		'size'=>15,

		'width'=>'300px',

	));

?>

	<br />

	<?php echo CHtml::submitButton(Yii::t('ui', 'Enregistrer'), array('class'=>'btn btn-primary')); ?>&nbsp;

	<!--?php echo CHtml::link(CHtml::encode('Enregistrer'), array('view', 'id'=>$model->id)); ?-->

	<?php echo CHtml::endForm(); ?>



_renderpagetableapplication.php




<?php  


	echo CHtml::beginForm($this->createUrl('moveTable?idparent='.$model->id.'&idrel='.$idrelation.'&typedonnees='.$typedonnees));

	$this->widget('ext.widgets.multiselects.XMultiSelects',array(

		'leftTitle'=>'Données n\'appartenant pas à l\'application',

		'leftName'=>'Table'.$typedonnees.'[tablenonapplication][]',

		'leftList'=>Table::model()->chercherTablesNonApplication($typedonnees,$model->id,$idrelation,$idobjet),

		'rightTitle'=>'Données appartenant pas à l\'application',

		'rightName'=>'Table'.$typedonnees.'[tableapplication][]',

		'rightList'=>Table::model()->chercherTablesApplication($typedonnees,$model->id,$idrelation,$idobjet),

		'size'=>15,

		'width'=>'300px',

	));

?>

	<br />

	<?php echo CHtml::submitButton(Yii::t('ui', 'Enregistrer'), array('class'=>'btn btn-primary')); ?>&nbsp;

	<!--?php echo CHtml::link(CHtml::encode('Enregistrer'), array('view', 'id'=>$model->id)); ?-->

	<?php echo CHtml::endForm(); ?>



Alors mon problème le voici sur le premier onglet je séléctionne et je déplace les données à droire comme à gauche ce qui est impossible sur le deuxième onglet. Si je permutte les onglets cela marche toujours pour l’onglet qui est à la première position et cela ne marche pas pour celui qui est à la deuxième position. Je me dits peut être que c’est du au fait que les boutons de déplacement ont le même nom ?? je sais pas ? Es ce qu’il y’a possibilité de nommer les boutons de déplacement si c’est cela le problème ???

Avec 63 vues aucune réponse peut etre que mon problème est mal posé ??? C’est comme ci sur le deuxième et le troisième onglet les boutons ne réagissent pas si pour déplacer les données sélectionnées à gauche ou à droite.

Ok je pense que le problème est bien ce que ce que je soupconne . le fait qu’il ait plusieurs ext.widgets.multiselects.XMultiSelects sur la même vue pose problème car au lieu d’utiliser le zii.widgets.jui.CJuiTabs si je mets mets 3 ext.widgets.multiselects.XMultiSelects directement sur le formulaire c’est le meme comportement. Seul les boutons de déplacement du premiers réagissent les autres ne font riens lorsqu’on clique dessus. A mon avis cela vient du fait que les bouton de déplacement ont les meme noms sur les trois ext.widgets.multiselects.XMultiSelects.

Bonjour,

J’espère avoir compris ton problème…

T’aimerai faire des onglet dans le menu?

5607

Capture.PNG
(j’ai de gros doute que ce sois ça…)

Peux tu mettre des images que l’on comprenne mieux

Le “jui.CJuiTabs” m’est encore peut connu, je fais des recherche et je te tiens au courant.

Cordialement Navy

comment on fait pour mettre une image ????

Bonjour,

Voici un petit tuto rapide,

Déjà utilisé full editor

5614

Capture1.PNG

Puis choisir un fichier

5615

Capture2.PNG

Tu prend le fichier voulu.

Directement clic sur Attach this File

5616

Capture3.PNG

Puis un add to post

5617

Capture4.PNG

Une ligne se rajoute du type 5697

prueba signo.jpg

et l’image sera ajouter.

Cordialement Navy

voici comment se présente ma vue view.php

5618

view.PNG

5619

viewtable.PNG

sur le premier onglet (Table) j’arrive à sélectionner et à déplacer les informations dans les deux sens avec les boutons de déplacement.

Ce qui est impossible sur les autres onglets comme l’onglet relation ou langue

Relation

5620

viewongletrelation.PNG

langue

5621

viewlangue.PNG

Et par contre si je place l’onglet relation ou langue et premiere position le déplacement est possible. Donc en somme le déplacement à gauche ou à droite n’est possible que sur le premier onglet.

Alors pourquoi je pense que que le probleme se situe au niveau de ces boutons de dépaclement car je remarque que sur le code source, ces boutouns ont les memes noms d’un onglet à un autre alors que pour les boutons enregistrer le nom change bien




<script type="text/javascript"><!--

$(function() {

$("#select_left").multiSelect("#select_right", {trigger: "#options_right"});

$("#select_right").multiSelect("#select_left", {trigger: "#options_left"});

$("#select_left").multiSelect("#select_right", {allTrigger:"#options_right_all"});

$("#select_right").multiSelect("#select_left", {allTrigger:"#options_left_all"});

});

// --></script>



ce bout de code se répéte pour chaque onglet

salut je vois que vous êtes là es ce que vous avez compris maintenant mon problème ???

Bonjour,

Ta regarder avec firebug sur Firefox? qu’est ce qu’il dis (erreur dans les autre onglets?)

Ta fonction échange les données des colonnes d’un onglet (premier fonctionne) sauf que des que tu change d’onglet les boutons suivent pas le changement.

  • Pourquoi veux tu changer les nom des boutons alors qu’il doivent faire strictement la même chose?

-Peut-être rajoute un paramètre a ta fonction javascript qui prend en compte l’onglet actuel.

Pour moi ton problème viens plus que ton programme ne sais plus ou il est (qu’elle onglet le nom des boutons qui reste le même le prouve).

Il fonctionne très bien sur le premier onglet(qu’elle que sois l’onglet premier), mais pas les deux autres.

Petit test:

-Vas dans le deuxième onglet

-Sélectionne la première donnée modifie ça place

-Retourne dans le premier onglet

-Vérifie que rien ne sois modifier. Si l’action c’est effectuer au premier onglet mon soupçon est confirmer. Si non regarde se que te dis firebug et dis moi.

En espérant t’avoir donnée une piste.

Cordialement Navy

Edit: Relecture… :unsure:

Désolé ordinateur connecté je réfléchissais et puis réunion…

J’ai fait le petit test rien ne se passe. Dés que tu es sur les autres onglets les boutons de déplacements ne réagissent plus.

Gueye tu travailles avec quel IDE ?

j’utilise plutot sublime Text

Avec firefox les onglets sont affichés sous formes de liste et non sous forme tabulaire.

Et la aucun bouton ne marche

Désolé le problème viens de ta configuration de t’es onglets pas des boutons en eux même(je pense que tu l’as deviné…)

Mais je suis pas assez avancer pour t’aider sur ton code exact

Courage et bonne chance =)

maintenant je suis sur d‘une chose ce ne sont pas les onglets mais le multiselect. J‘éliminé les onglets et j‘ai mis les 3 multiselect j‘obtient la meme chose c‘est à dire seul les boutons du premier fonctionnent.




<?php


	echo CHtml::beginForm($this->createUrl('moveTable?idparent='.$model->id.'&idrel='.$idrelation.'&typedonnees='.$typedonnees));

	$this->widget('ext.widgets.multiselects.XMultiSelects',array(

		'leftTitle'=>'Données n\'appartenant pas à l\'application',

		'leftName'=>'Tablev'.$typedonnees.'[tablenonapplication][]',

		'leftList'=>Table::model()->chercherTablesNonApplication($typedonnees,$model->id,$idrelation,$idobjet),

		'rightTitle'=>'Données appartenant pas à l\'application',

		'rightName'=>'Tablev'.$typedonnees.'[tableapplication][]',

		'rightList'=>Table::model()->chercherTablesApplication($typedonnees,$model->id,$idrelation,$idobjet),

		'size'=>15,

		'width'=>'300px',

	));

?>

	<br />

	<?php echo CHtml::submitButton(Yii::t('ui', 'Enregistrer'), array('class'=>'btn btn-primary')); ?>&nbsp;

	<!--?php echo CHtml::link(CHtml::encode('Enregistrer'), array('view', 'id'=>$model->id)); ?-->

	<?php echo CHtml::endForm(); ?>

<?php


	echo CHtml::beginForm($this->createUrl('moveTable?idparent='.$model->id.'&idrel='.$idrelation.'&typedonnees='.$typedonnees));

	$this->widget('ext.widgets.multiselects.XMultiSelects',array(

		'leftTitle'=>'Données n\'appartenant pas à l\'application',

		'leftName'=>'Tablev1'.$typedonnees.'[tablenonapplication][]',

		'leftList'=>Table::model()->chercherTablesNonApplication($typedonnees,$model->id,$idrelation,$idobjet),

		'rightTitle'=>'Données appartenant pas à l\'application',

		'rightName'=>'Tablev1'.$typedonnees.'[tableapplication][]',

		'rightList'=>Table::model()->chercherTablesApplication($typedonnees,$model->id,$idrelation,$idobjet),

		'size'=>15,

		'width'=>'300px',

	));

?>

	<br />

	<?php echo CHtml::submitButton(Yii::t('ui', 'Enregistrer'), array('class'=>'btn btn-primary')); ?>&nbsp;

	<!--?php echo CHtml::link(CHtml::encode('Enregistrer'), array('view', 'id'=>$model->id)); ?-->

	<?php echo CHtml::endForm(); ?>

il y‘a aucune erreur de signalé sur la meme vue on peut pas faire fonctionner plusieurs multiselect qui ont des données différentes.

Petite précision, quand tu dis tu as toujours la même chose:

-le fait que tu modifie l’ordre des multiselect. Le 1 fonctionne toujours? Quelle que sois le multiselect mis en première place?

Cordialement Navy

EDIT: Essaye de changer les Title (on ne sais jamais …)

oui celui qui est en premiere position fonctionne toujours

alors pourquoi j‘avais pensé que c‘est les noms des boutons de déplacement qu‘il faut modifier c‘est que les différents bouton ont le meme nom lors de la création par l‘appel de l‘4extension Xmultiselect que voici




<?php

/**

 * XMultiSelects class file

 *

 * This widget is used to transfer options between two select filed

 *

 * Usage

 * <pre>

 * $this->widget('ext.widgets.multiselects.XMultiSelects',array(

 *     'leftTitle'=>'Australia',

 *     'leftName'=>'Person[australia][]',

 *     'leftList'=>Person::model()->findUsersByCountry(14),

 *     'rightTitle'=>'New Zealand',

 *     'rightName'=>'Person[newzealand][]',

 *     'rightList'=>Person::model()->findUsersByCountry(158),

 *     'size'=>20,

 *     'width'=>'200px',

 * ));

 * </pre>

 */

class XMultiSelects extends CWidget

{

	/**

	 * The label for the left mutiple select

	 * option

	 * @var string

	 */

	public $leftTitle;

	/**

	 * The label for the right mutiple select

	 * option

	 * @var string

	 */

	public $rightTitle;

	/**

	 * The name for the left mutiple select

	 * require

	 * @var string

	 */

	public $leftName;

	/**

	 * The name for the right mutiple select

	 * require

	 * @var string

	 */

	public $rightName;

	/**

	 * data for generating the left list options

	 * require

	 * @var array

	 */

	public $leftList;

	/**

	 * data for generating the right list options

	 * require

	 * @var array

	 */

	public $rightList;

	/**

	 * The size for the multiple selects.

	 * option

	 * @var integer

	 */

	public $size=15;


	/**

	 * The width for the multiple selects.

	 * option

	 * @var string

	 */

	public $width;


	/**

	 * register clientside widget files

	 */

	protected function registerClientScript()

	{

		$cs=Yii::app()->getClientScript();

		$cs->registerCoreScript('jquery');

		$cs->registerScriptFile(Yii::app()->getAssetManager()->publish(dirname(__FILE__).'/jquery.multiselects.js'));

	}


	/**

	 * Initializes the widget

	 */

	public function init()

	{

		if(!isset($this->leftName))

		{

			throw new CHttpException(500,'"leftName" have to be set!');

		}

		if(!isset($this->rightName))

		{

			throw new CHttpException(500,'"rightName" have to be set!');

		}

		if(!isset($this->leftList))

		{

			throw new CHttpException(500,'"leftList" have to be set!');

		}

		if(!isset($this->rightList))

		{

			throw new CHttpException(500,'"rightList" have to be set!');

		}

	}


	/**

	 * Run the widget

	 */

	public function run()

	{

		echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n";

		echo "<tr>\n";

		echo "<td>\n";

		if(isset($this->leftTitle))

		{

			echo "<label for=\"leftTitle\">{$this->leftTitle}</label><br />\n";

		}

		echo "<select name=\"{$this->leftName}\" id=\"select_left\" multiple=\"multiple\" size=\"{$this->size}\" style=\"width:{$this->width}\">\n";

		foreach($this->leftList as $value=>$label)

		{

			echo "<option value=\"{$value}\">{$label}</option>\n";

		}

		echo "</select></td>\n";

               // voici les boutons de déplacement

		echo "<td style=\"width:60px; text-align:center; vertical-align:middle\">\n";

		echo "<input type=\"button\" style=\"width:40px\" id=\"options_left\" value=\"&lt;\" /><br /><br />\n";

		echo "<input type=\"button\" style=\"width:40px\" id=\"options_right\" value=\"&gt;\" /><br /><br />\n";

		echo "<input type=\"button\" style=\"width:40px\" id=\"options_left_all\" value=\"&lt;&lt;\" /><br /><br />\n";

		echo "<input type=\"button\" style=\"width:40px\" id=\"options_right_all\" value=\"&gt;&gt;\" /><br /><br /></td>\n";


		echo "<td>\n";

		if(isset($this->rightTitle))

		{

			echo "<label for=\"rightTitle\">{$this->rightTitle}</label><br />\n";

		}

		echo "<select name=\"{$this->rightName}\" id=\"select_right\" multiple=\"multiple\" size=\"{$this->size}\" style=\"width:{$this->width}\">\n";

		foreach($this->rightList as $value=>$label)

		{

			echo "<option value=\"{$value}\">{$label}</option>\n";

		}

		echo "</select></td>\n";

		echo "</tr></table>\n";


		$this->registerClientScript();


		echo "<script type=\"text/javascript\"><!--\n";

		echo "\$(function() {\n";

		echo "\$(\"#select_left\").multiSelect(\"#select_right\", {trigger: \"#options_right\"});\n";

		echo "\$(\"#select_right\").multiSelect(\"#select_left\", {trigger: \"#options_left\"});\n";

		echo "\$(\"#select_left\").multiSelect(\"#select_right\", {allTrigger:\"#options_right_all\"});\n";

		echo "\$(\"#select_right\").multiSelect(\"#select_left\", {allTrigger:\"#options_left_all\"});\n";

		echo "});\n";

		echo "// --></script>\n";

		parent::init();

	}


	protected function renderContent()

	{

	}

}



voici comment cela se présente

5658

Capture d’écran 2014-06-05 à 09.30.56.png

je pense fortement que mon blème vient du fait que les boutons de déplacement identiques ont le meme nom

Ta déjà essayer de modifier le nom des boutons en deuxième position si mes souvenir sont correct non?

Ils sont aussi automatiquement intégré entre les deux tables par l’extension… (dis moi si je me trompe)

Je voie mal comment tu peux facilement changer les noms de t’es boutons cette extension a peu être une limite a une table par url… Ça serai dommage

(Je pense comme toi pour les boutons car le code est bon…) Désolé =( de pas pouvoir t’aider plus