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

  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

  7. #7
    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
    Une solution serait de créer un champ caché,
    puis, de modifier la value de ce champ comme ceci :

    si au chargement de ta page on a :

    monChampCache.value = ''

    tu ajoute tes elements :

    monChampCaché.value .=mavaleur#

    ainsi tu pouura envoyé à un script PHP la valeur de ton champ caché qui sera comme ceci :

    "mavaleur#mavaleur2#mavaleur3#"

    ensuite dans ton script PHP, tu utilises la fonction 'pregsplit'

    est-ce clair pour toi ?

    ricco

  8. #8
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Par défaut
    merci je vais essayer ca et je te dirai merci pour la réponse en tout cas !! je testerai ca un peu plus tard merciii encore !!

  9. #9
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Par défaut
    bon apres quelques tests j'aimerai etre sur d'avoir tout comprit

    je declare un champ caché :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type=hidden name=temp value=\"$temp\">
    dans mon script java je le declare a null dans ma fonction ajouter() j'implemente la valeur en l'occurence TxtEle donc :

    et je recupere la valeur dans celle que je voulais avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $NOM_MACH =preg_split('#',temp);
    je ne sais pas si je dois mettre temp ou $temp dans les parametre de preg

    le fait d'ajouter ma valeur a marché une fois mais apres le script ne veut plus faire bouger les elements... si tu pouvai juste me dire si j'ai bien tout comprit merciiiiiiiiii

  10. #10
    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,

    Je pense qu'en gros tu as bien compris.

    Mais je pense que tu n'as pas besoin de dire ::
    ,

    car par défaut, la value est vide.

    Ensuite, fais bien attention :

    au lieu de il faut plutôt écrire :

    (le point devant le signe '=')


    Concernant 'temp' ou '$temp'

    attention,

    si tu envoi les données via la méthode post alors dans ton opho tu recuperes la données comme ceci :

    si c en GET , alors c .

    en esperant que ça pourra t'aider.

  11. #11
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Par défaut
    merci pour tous ces details j'ai enfin comprit un peu mieux le javascript par contre lorsque j'essaye de mettre le code dans mes fonctions javascript le double tableau ne marche plus ... c'est vraiment pas facil d'utiliser tout les languages a la fois lol dans ma page en php j'ai du html du sybase du javascript et un peu de php... mdr je vais my replonger merci encore pour les infos !!

  12. #12
    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
    tu vois ? c'était pas bien compliqué... lol

  13. #13
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Par défaut
    non c'estst pas compliqué mais ca marche pas... mdr je ne sais pas si c'est moi qui est mal structuré mon code mais quand je veut rajouter la valeur avec le temp.value .= TxtEle#; il ne veut pas le prendre et ca me fait planter le script du double tableau, je pense que c'est une erreur de code de ma part dans l'architecture de mon fichier je vais voir ca parcque je pense avoir toute les soluces la j'aimerai bien mettre "resolu" sur ce post !! je vais my remettre lol mais la je bataille avec les Foreign Key... ahh contraintes quand tu nous tiens

  14. #14
    Membre éclairé Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Par défaut
    Ce ne serait pas plutôt un + à la place du . en JS?


  15. #15
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Par défaut
    nan ca ne change pas , toujours le meme probleme des que je veut rajouter du code dans la fonction ajouter() y veut pas, j'ai juste fais un alert pour voir si la donnée que je voulais stocker etait de la bonne forme ca marche... mais il ne veut pas se mettre dans le parametre temp, je vous met juste le debut de mon code javascript implenté

    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
    echo "<script language=\"javascript\"><!--
     	var NbSource=$NB_MACH;
     	var NbCible=0;
     
     	function Ajouter()
    	{
    	 var NbEle = -1;
     	 var TxtEle= \"\";
     	for(i = 0; i < document.all(\"LstSource\").length; i++){
           if (document.all(\"LstSource\").options[i].selected){
             NbEle = i;
             TxtEle = document.all(\"LstSource\").options[i].text;
             temp.value .=TxtEle#;
             temp.value +=TxtEle#;
           }
         }
    et j'ai mon temp declaré en hidden a la fin de ma page.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type=hidden name=temp value=\"$temp\">
    et pi mon autre parametre ou je recupere la liste !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $NOM_MACH =preg_split('#',temp,-1,PREG_SPLIT_NO_EMPTY);
    ce code me met un warning nianiania aucun separateur # n'a etait trouvé, meme en rajoutant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    temp.value .= "pouet"#;
    dans le javascript il s'en fiche...

    je comprend po ca devrai marché

  16. #16
    Membre éclairé Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Par défaut
    .= ca n'existe pas en Js je suis persuadé !

  17. #17
    Membre confirmé Avatar de legillou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 178
    Par défaut
    c 'est un "+=" qu'il faut utiliser.
    Dans ton code, il y a truc que je pige pas. Dans toutes les fonctions javascript que j'ai utilise (il n'y en a pas des masses non plus), mais je n'ai jamais eu besoin de # a la fin de mes variables, je vois pas trop ce que ca fait la. As tu essayer sans pour voir ? Un truc du genre

  18. #18
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Par défaut
    le # sert pour la fonction preg_split('#',parametre) elle permet a ce que j'ai comprit de constitué une liste avec comme séparateur de données le caractère # http://g-rossolini.developpez.com/tu...ns-regulieres/
    mais il semble que la syntaxe dise plutot d'utiliser d'autre caractere, je pense que vous pouvez tester mon script dans la premiere page le script javascript y est ainsi que l'appel dans le code html. (suffit juste de mettre des options en dur dans la premiere liste et de remplacer $NB_MACH par le nombre de vos options.

    je vais retenter le coup sans le # pour voir

    [edit] bon j'ai tester et en fait meme si je met juste temp.value = "pouet"; ca marche pas lol en fait ma liste ne fonctionne plus si je rajoute du code ;'( comprend po [/edit]

  19. #19
    Membre confirmé Avatar de legillou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 178
    Par défaut
    Juste comme ca, il n'y aurait pas un probleme avec ton hidden input :
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type=hidden name=temp value=\"$temp\">
    essaie plutot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type=hidden name=temp value='$temp'>
    Si cette ligne est comprise dans un ou sinon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type=hidden name=temp value='.$temp.'>
    si ta ligne est comprises dans un

  20. #20
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Par défaut
    non je ne pense pas que cela vienne de la, je travaille sur un code deja update par plusieurs personne ils passent tous les parametres entre "" par des \ , mais c'est vraiment bizarre dans ma fonction lorque je met ca marche pas, quand je met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    temp = TxtEle; ou temp += TxtEle
    ca marche quand je met ca marche aussi... enfin ca ne me met pas d'erreur surtout apres cela ne bloque pas le script non plus mais toujours pas moyen de recuperer ces valeurs... c'est peut etre pas possible par cette methode... c'est mal fichu le javascript :p (ps : j'ai essayer de refaire les 2 fonctions en php... c'est encore pire mdr)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

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