IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Probleme de recuperation de données javascript --> formulaire --> php


Sujet :

JavaScript

Vue hybride

kowabunga Utilisation d'un double... 21/07/2006, 11h10
kowabunga merci quand meme :( un... 21/07/2006, 15h17
Sheriff houlaaaaaaaa faut pas facher... 22/07/2006, 14h04
kowabunga dsl d'avoir etait un peu sec... 24/07/2006, 09h13
riccco Salut, Peux tu formuler... 24/07/2006, 11h32
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Par défaut Utilisation d'un double tableau style boite mail Javascript --> PHP
    Op petit edit du premier post pour mettre la solution a ce petit probleme qu'est le double tableau.

    Le but de ce script est l'utilisation d'un double tableau, LstSource et LstCible, la mise en parametre d'option, le passage d'un tableau a un autre en enfin la validation des données pour une utilisation $_POST dans un autre fichier ou dans le meme.

    Tous d'abord il faut créer un formulaire ainsi que les 2 tableaux, ca c'est pas trop dur et le graphisme est laissé au gout de chacun (ici les dimensions sont en automatiques.

    Tous mon code est dans des echo car en php (pour eviter de ce tromper
    Les noms des parametres sont en relations avec les scripts attention au modification.

    Voici donc le formulaire ainsi que les tableaux et les boutons.
    Les commentaires etant fait en // sont a supprimé lors de l'implantation c'est juste pour préciser votre fichier a bien sur les quotes <? et ?> entre tous ce code, ainsi que les parametres html...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    echo "
    	<form name=\"formSaisie\" action=\"fichier_confirmation.php\" method=\"post\" onSubmit=\"PostSelect()\">" ;
     
     
    echo"<table>
    <tr>
     <td>  
    <select id=\"LstSource\" size=\"10\" width=\"200\" height=\"150\" ondblclick=\"Ajouter();\" multiple=\"multiple\" >
         <option value=\"\">*Machine a selectionner*</option>";
     //inserer ici les options, je recupérais les éléments dans une base de données, et cela marche tres bien sinon mettez les en durs.
        <option>Element 1</option>
        <option>Element 2</option>
        <option>Element 3</option>
    </select>
    </td>    
     
    //le code des boutons 
    <td>
    <input type=\"button\" class=\"button\" style=\"width:100px\" onclick=\"Ajouter();\" value=\">>Ajouter>>\" /><br />&nbsp;<br />
    <input type=\"button\" class=\"button\" style=\"width:100px\" onclick=\"Supprimer();\" value=\"<<Supprimer<<\" /><br />&nbsp;<br />
     </td>
     
    //le tableau ou l'on veut mettre les elements !
     <td>
       <select id=\"LstCible\" name=\"LstCible\"  size=\"10\" width=\"200\" height=\"150\" ondblclick=\"Supprimer();\" multiple=\"multiple\">
       <option value=\"\">*Ajouter les en cliquant dessus ou en les double cliquant*</option>
    //la ne pas ajouter d'element puisque c'est ceux que l'on va recuperer :)
     </select>
        </td>
        </tr>
     
    </table>
     
    //les boutons de submit pour valider les actions.
    <input type=\"submit\" value=\"Valider \">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
     	<input type=\"reset\" value=\"Annuler\">";

    Voila la structure html est faite il ne reste plus qu'a implanter les fonctions javascript la par contre ils ne sont pas dans un echo pour laisser les commentaires vous pouvez l'integrer dans le code en ajoutant des petits \"\" pour les guillemets. ou le laisser en dehors mais au debut de votre fichier.!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    <script language="javascript">
    //script javascript pour l'utilisation du double tableau de selection  
     	var NbSource=$nombre_de_source;  //<-- ca c'est a vous a le changer suivant si vous connaissez le nombre d'éléments de votre liste de source, soit comme je l'ai fait grace a des fonctions sql si les elements sont dans une table de données.
     	var NbCible=0; 
     
    //Fonction ajoutant les elements du tableau de droite LstSource a celui de gauche LstCible		
     	function Ajouter(){
    	 var NbEle = -1;
     	 var TxtEle= "";
     	for(i = 0; i < document.getElementById("LstSource").length; i++){
           if (document.getElementById("LstSource").options[i].selected){
             NbEle = i;
             TxtEle = document.getElementById("LstSource").options[i].text;
            }
         }
     
         if (NbSource != 0 && NbEle != -1){
           document.getElementById("LstSource").options[NbEle] = null;
           document.getElementById("LstCible").options[NbCible] = new Option(TxtEle);
           NbCible = NbCible + 1;
           NbSource = NbSource - 1;
          }
     
       }
    //Fonction supprimant les elements de la liste de selection LstCible
       function Supprimer() {
         var NbEle = -1;
         var TxtEle = "";
         for(i = 0; i < document.getElementById("LstCible").length; i++)
    	 {
           if (document.getElementById("LstCible").options[i].selected)
    	   {
             NbEle = i;
             TxtEle = document.getElementById("LstCible").options[i].text;
     
           }
         }
     
         if (NbCible != 0 && NbEle != -1) {
           document.getElementById("LstCible").options[NbEle] = null;
           document.getElementById("LstSource").options[NbSource] = new Option(TxtEle);
           NbCible = NbCible - 1;
           NbSource = NbSource + 1; 
    	 }
        }
    //Fonction permettant lors du submit de selectionner tous les elements de la liste Cible.    
       function PostSelect(){
       //calcule le nombre d'element de la liste
       NbCol1 = document.getElementById('LstCible').length;
       //Boucle qui en mettant a true les options d'elements les valides
       for(a=0; a<NbCol1; a++){
         document.getElementById('LstCible').options[a].selected = true;
       }
       //implantation des elements dans un tableau
       document.getElementById('LstCible').name = "LstCible[]";
        document.formSaisie.submit();
     }
     
    </script>
    Voila il ne vous reste plus qu'a recuperer la valeur dans le fichier de cible ou dans le meme grace a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ma_liste=array();
     $ma_liste = $HTTP_POST_VARS["LstCible"];
     
    ou bien de le mettre en Hidden pour l'utiliser plus tard !!
    Vous pouvez comptez les elements faire des boucles For pour attribuer les elements a des valeurs tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $ma_liste[$i]  = $HTTP_POST_VARS["ma_liste$i"];
    En esperant que ca pourra aider les codeurs encore merci a ceux qui m'ont aidé ! moi je vais m'en servir plein de fois

    Et sans oublier de préciser que les fonctions javascript ont etait trouvé sur le site www.developpez.net je n'ai juste fais que rassemblé

    PS pour admin : si on pouvait changer le titre du post pour une recherche plus facile en :
    Utilisation d'un double tableau style boite mail Javascript --> PHP
    merci

  2. #2
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Par défaut
    merci quand meme

    un petit "je ne sais pas " m'aurait suffit je penser que ce site rassemblé des ferus de problemes... tant pi

  3. #3
    Membre émérite Avatar de Sheriff
    Inscrit en
    Octobre 2004
    Messages
    608
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 608
    Par défaut
    houlaaaaaaaa
    faut pas facher !
    l'astuce est de localiser la source de ton problème et soumettre.
    tu sais, les codes kilométriques... faut être un as
    sinon
    @+

  4. #4
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Par défaut
    dsl d'avoir etait un peu sec mais cela fait 1 semaine que je suis dessus et je n'arrive pas a entrevoir une possibilité de soluces mais je vais m'y remettre !!

    mon seul vrai probleme est d'arrivé a stocker les données validé depuis le script javascript dans une variable post NOM_MACH tableau que je pourrai reutilisé apres.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 52
    Par défaut
    Salut,

    Peux tu formuler très simplement ou est le pb sans écrire tout le code ?
    ça sera plus facile à lire..


    ricco

  6. #6
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Par défaut
    d'accord je vais essayer de reprendre, en fait c'est un code pour une amelioration d'interface, j'ai donc des contraintes de parametres (pour pas avoir a changer tous le code qui en suit)

    donc le code a pour but de selectionner des machines d'une liste à une autre liste (c'est le double tableau que l'on retrouve dans les messageries par exemple pour ajouter des destinataires a son message ou pouvoir les enlevers), les fonctionnalités d'échange entre les listes marche nikel (j'ai chopper le code ici et c'est nikel)

    appelons les respectivement LstSource et LstCible,

    -> dans ma LstSource je met en option de choix une liste que je recupere depuis une table sql (donc pas statique), ca ca marche les elements peuvent etre ajouter ou supprimer.

    ->dans la LstCible j'aimerai stocker les elements selectionné dans un parametre de type tableau (juste pour stocker tous les choix) qui se nomme NOM_MACH.

    Le probleme est que je n'arrive pas a mettre des informations dans ce parametre j'ai essayer de mettre ce parametre un peu partout dans le code mais je n'arrive pas a lui ajouter des données.
    Je ne sais pas si je doit stocker mes options de select dans du code javascript pour ensuite le transmettre en php, ou si je peut directement ajouter les informations dans un parametre de POST php.

    voila j'espere avoir un peu eclairci mon explication et le code qui s'y rapporte, merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. recuperer les données d'un formulaire sans php
    Par love-part dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 10/12/2012, 18h07
  2. [MySQL] Probleme de recuperation de données du formulaire
    Par falltech dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 01/10/2010, 18h10
  3. Recuperer les données d'un formulaire en PHP
    Par mekdar dans le forum Langage
    Réponses: 2
    Dernier message: 29/11/2005, 15h41
  4. [Tableaux] Probleme de recuperation de données
    Par BernardT dans le forum Langage
    Réponses: 14
    Dernier message: 14/11/2005, 22h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo