Bonjour à tous,
Je débute en programmation php. J'ai suivi déjà quelques tutos en ligne pour apprendre les bases de ce langage. J'ai déjà réussi à construire un questionnaire qui enregistre après certaines vérifications les valeurs renseignées par l'utilisateur dans une base de donnée. A coté de ça j'ai appris à programmer en vb, ce qui m'aide un peu pour les structures conditionnelles. Etant débutant dans ce langage et non informaticien, je suis ouvert à toute remarque notamment sur les règles de programmation que je ne connais pas forcément.
Après cette introduction, je vais essayer de vous expliquer mon problème. Le but de ce formulaire est que les personnes sélectionnent parmi une liste prédéfinie un nombre d'étapes. Il faut qu'elle puisse une fois ces étapes sélectionnées pouvoir les modifier. Une fois sélectionnées et validées ces étapes sont enregistrées dans une bdd mysql.
J'utilise après différents tentatives, le script suivant, (qui n'est pas de ma création) qui permet de générer un double menu, un à gauche avec la liste d'origine et celui de droite avec les éléments sélectionnés.
Code :
- <script language="javascript">
- <!--
- function deplacer_elements(de, vers) {
- var F = document.form1;
- var elements1 = "items_" + de + "[]";
- var elements2 = "items_" + vers + "[]";
- if (F.elements[elements1].options.selectedIndex >= 0) {
- /* boucle tant qu'il reste des éléments sélectionnés */
- /* if(F.elements[elements1].options[index].value != "" ) {*/
- while (F.elements[elements1].options.selectedIndex >= 0) {
- /* index de l'élément sélectionné */
- index = F.elements[elements1].options.selectedIndex;
- /* /texte de l'élément sélectionné */
- texte = F.elements[elements1].options[index].text;
- /* valeur de l'élément sélectionné */
- valeur = F.elements[elements1].options[index].value;
- /* suppression de l'élément sélectionné dans la liste d'origine */
- F.elements[elements1].options[index] = null;
-
- /* création de l'élément dans la liste accueillante */
- var user = new Option(texte, valeur);
- nb_elements = F.elements[elements2].options.length; // nbre d'éléments dans la liste accueillante
- F.elements[elements2].options[nb_elements] = user;
- }
- }
- else
- alert("Aucun Item sélectionné !" );
-
- return(false);
- }
- //-->
- </script>
|
NB: Vous pouvez apercevoir à la ligne 10 une tentative de filtre des valeurs qui passe d'un menu à l'autre, le menu ayant +de 50 entrées j'ai fait des sous menus avec des titres qui ont des valeurs égales à "". Si quelqu'un a une idée sur le moyen de filtrer à ce niveau là, car le javascript je ne connais pas très bien.
Ces 2 menus sont intégrés dans un form, qui contient aussi un bouton de type submit. Lorsque ce bouton est pressé il fait appel au script php de la page.
Code :
- <?php
- global $monstre;
- if (isset($Ok))
- {if ($items_droite!="" )
- {foreach ($items_droite as $choix)
- {if ($choix!="" )
- {
- echo "> ",$choix,"<br>";
- $choix=$choix."*";
- $monstre=$monstre.$choix;
- }
- }
- }
- }
- ?>
|
Le problème est que ma variable "$items_droite" est toujours égale à "". J'ai l'impression que la variable est remise à zéro après l'appui sur le bouton. J'ai déjà réussi à faire marcher le script du dessus en utilisant un menu classique à sélection multiples, mais le fait de pouvoir vérifier et corriger la sélection est très important(, car après ça enregistrement ds bdd et plus touche par l'utilisateur). Je me demandais si cela ne venait pas de la structure et s'il ne fallait pas exécuter un script se trouvant sur une autre page.
D'avance merci à ceux qui liront ces lignes et qui souhaiteront m'aider.
Message édité par Yoshirouge le 30-04-2010 à 16:40:14