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 :

array.join entre array !


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 6
    Par défaut array.join entre array !
    Bonjour à tous,

    étant complètement débutant dans le monde du développement en général je vais essayer d'être le plus explicite possible.

    J'essaye de développer un petit trombinoscope basé sur php/MySQL, tout fonctionne comme je le souhaite il ne me reste plus qu'à faire en sorte que l'on puisse ressortir les infos souahitée !

    Pour se faire je joue sur ce que j'appelle des catégories qui sont service, responsable, etc...

    Je veux faire en sorte que lorsque je clique sur une checkbox ma condtion se construise tout seul, voila ce a quoi j'arrive :

    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
        <head>
            <title>Trombinoscope</title>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
     
            <script type="text/javascript">
            elements_requete_service = new Array();
            elements_requete_responsable = new Array();
     
            function check_service(val_input, valeur_condi)
            {
            if (val_input)
                {
                elements_requete_service.push(valeur_condi);
                }
                else
                    {
                    for(var i = 0; i < elements_requete_service.length; ++i)
                        {
                        if(elements_requete_service[i] == valeur_condi)
                            {
                            elements_requete_service.splice(i,1);
                            }
                        }
                    }
            document.getElementById('conditions_requete').value =  elements_requete_service.join(' OR ');
            document.getElementById('conditions_requete_visu').value =  elements_requete_service.join(' OR ');
            }
     
            function check_responsable(val_input, valeur_condi)
            {
            if (val_input)
                {
                elements_requete_responsable.push(valeur_condi);
                }
                else
                    {
                    for(var i = 0; i < elements_requete_responsable.length; ++i)
                        {
                        if(elements_requete_responsable[i] == valeur_condi)
                            {
                            elements_requete_responsable.splice(i,1);
                            }
                        }
                    }
            document.getElementById('conditions_requete_2').value =  elements_requete_responsable.join();
            document.getElementById('conditions_requete_visu_2').value =  elements_requete_responsable.join();
            }
            </script>
        </head>
     
        <body>
     
                <h1><u>Filtre trombinoscope :</u></h1>
     
                <p>Cochez les options pour lesquelles vous souhaitez avoir le personnel :</p>
     
                <form action="test.php" method="post">
     
                    <TABLE BORDER>
                        <TR>
                            <TD WIDTH=250 HEIGHT=150>
                                Service :<br /><br />
     
                                <input type="checkbox"  id="administratif" onClick="check_service(this.checked, 'SERVICE = \'administratif\'');" tabindex="10" /><label for="administratif"> Administratif</label><br>
                                <input type="checkbox"  id="condibg" onClick="check_service(this.checked, 'SERVICE = \'condibg\'');" tabindex="20" /><label for="condibg"> Conditionnement BG</label><br>
                                <input type="checkbox"  id="condilmg" onClick="check_service(this.checked, 'SERVICE = \'condilmg\'');" tabindex="30" /><label for="condilmg"> Conditionnement LMG</label><br>
                                <input type="checkbox"  id="entretien" onClick="check_service(this.checked, 'SERVICE = \'entretien\'');" tabindex="40" /><label for="entretien"> Entretien</label><br>
                                <input type="checkbox"  id="expedition" onClick="check_service(this.checked, 'SERVICE = \'expedition\'');" tabindex="50" /><label for="expedition"> Expédition</label><br>
                                <input type="checkbox"  id="maintenance" onClick="check_service(this.checked, 'SERVICE = \'maintenance\'');" tabindex="60" /><label for="maintenance"> Maintenance</label><br>
                                <input type="checkbox"  id="pain" onClick="check_service(this.checked, 'SERVICE = \'pain\'');" tabindex="70" /><label for="pain"> Pain</label><br>
                                <input type="checkbox"  id="patisserie" onClick="check_service(this.checked, 'SERVICE = \'patisserie\'');" tabindex="80" /><label for="patisserie"> Pâtisserie</label>
                            </TD>
     
                            <TD WIDTH=250 HEIGHT=150>
                                Responsabilités :<br /><br />
     
                                <input type="checkbox"  id="responsable" onClick="check_responsable(this.checked, 'RESPONSABLE = \'checked\'');" tabindex="90" /><label for="responsable"> Responsable ?</label><br>
                                <input type="checkbox"  id="dp" onClick="check_dp(this.checked, 'DP = \'checked\'');" tabindex="100" /><label for="dp"> Délégué du personnel ?</label><br>
                                <input type="checkbox"  id="chsct" onClick="check_chsct(this.checked, 'CHSCT = \'checked\'');" tabindex="110" /><label for="chsct"> CHSCT ?</label><br>
                            </TD>
     
                            <TD WIDTH=250 HEIGHT=150>
                                Type de contrat :<br /><br />
     
                            </TD>                       
                        </TR>
                    </TABLE>
     
                    <input type="hidden" name="conditions_requete" id="conditions_requete" value="Aucune case cochée" />
                    <input type="text" name="conditions_requete_visu" id="conditions_requete_visu" value="Aucune case cochée" />
     
                    <input type="hidden" name="conditions_requete_2" id="conditions_requete_2" value="Aucune case cochée" />
                    <input type="text" name="conditions_requete_visu_2" id="conditions_requete_visu_2" value="Aucune case cochée" />
     
                    <input type="submit" value="Valider" />           
                </form>
     
        </body>
    </html>
    J'arrive donc pour une catégorie à avoir par exemple SERVICE='maintenance' OR SERVICE = 'pain' et aussi RESPONSABLE="checked"

    la ou le bas blesse c'est que je voudrais mettre un AND entre ces array automatiquement (comme c'est fait pour le OR) car il se peut que seulement responsable soit coché par exemple...

    Je ne vois pas comment m'y prendre mis à part avec un bout de code php super long et tordu...

    Existe t'il une reste miracle à mon mal ?

    Merci par avance à ceux qui auront eu la patience de lire tout ce post, si je ne suis pas clair (ce dont je ne doute pas) n'hésitez pas à me demander des précisions.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    concat non ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var Array1=new Array("coucou", "salut");
    var Array2=new Array("ça va ?", "Bien merci";
    var ArrayConcat=Array1.concat(Array2)
    alert(ArrayConcat)
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 6
    Par défaut
    De ce que j'ai compris le concat ne me permet pas d'ajouter de chaine de caractère (le fameux AND) ?

    Ce que je voudrais pouvoir faire c'est savoir si quels array sont non-vides et les mettre bout à bout avec un AND entre chaque. C'est possible?

    Sinon que pensez vous de mon bout de code ? Etant novice je recherche des avis extérieurs constructif

    Merci par avance !

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    non AND ne mettra pas bout à bout ...

    si c'est juste faire afficher le contenu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var affichage=((array1.length>0)?array1.join(' '):'')+((array2.length>0)?array2.join(' '):'') 
    alert (affichage)
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 6
    Par défaut
    Je ne veux pas que AND mette bout à bout mes array mais que la chaine AND soit insérée entre les array si elle sont non vides...

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var affichage=((array1.length>0)?array1.join(' ')+' AND ':'')+((array2.length>0)?array2.join(' '):'') 
    alert (affichage)
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 6
    Par défaut
    Et je t'embrasse sur la bouchez gentille grenouille.

    Merci beaucoup !

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert((akyo_== fille)?'avec plaisir':'pouark ça va pas la tête');
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 6
    Par défaut
    En fait une dernière question pourquoi ce code ne marche pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var affichage=((array1.length>0)?array1.join(' '):'')+(((array2.length>0) && (array1.length>0))?'AND'+array2.join(' '):'array2.join(' ')') 
    alert (affichage)

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    parce que la syntaxe est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var affichage=((array1.length>0)?array1.join(' '):'')+(((array2.length>0) && (array1.length>0))?('AND'+array2.join(' ')):array2.join(' '))
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 6
    Par défaut
    après modif, ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ((array1.length>0)?array1.join(' OR '):'')+(((array2.lenght>0) && (array1.lenght>0))?(' AND '+array2.join('')): array2.join(''));
    Ne marche pas il ne me sort jamais la conditions avec le AND même si mes 2 checkbox sont cochées

    En feintant j'arrive à obtenir le résultat escompté, à la fin des fonctions j'envoie dans une autre fonction pour faire la meme chose et ca marche....mais pourquoi ça ça marche :

    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
     
    		<script type="text/javascript">
    		elements_requete_service = new Array();
    		elements_requete_responsable = new Array();
     
    		function check_service(val_input, valeur_condi) 
    		{
    		if (val_input) 
    			{
    			elements_requete_service.push(valeur_condi);
    			}
    			else
    				{
    				for(var i = 0; i < elements_requete_service.length; ++i)
    					{
    					if(elements_requete_service[i] == valeur_condi)
    						{
    						elements_requete_service.splice(i,1);
    						}
    					}
    				}
    		document.getElementById('conditions_requete').value =  elements_requete_service.join(' OR ');
    		document.getElementById('conditions_requete_visu').value =  elements_requete_service.join(' OR ');
    		check_test(elements_requete_service.join(' OR '), elements_requete_responsable.join());
    		}
     
    		function check_responsable(val_input, valeur_condi) 
    		{
    		if (val_input) 
    			{
    			elements_requete_responsable.push(valeur_condi);
    			}
    			else
    				{
    				for(var i = 0; i < elements_requete_responsable.length; ++i)
    					{
    					if(elements_requete_responsable[i] == valeur_condi)
    						{
    						elements_requete_responsable.splice(i,1);
    						}
    					}
    				}
    		document.getElementById('conditions_requete_2').value =  elements_requete_responsable.join();
    		document.getElementById('conditions_requete_visu_2').value =  elements_requete_responsable.join();
    		check_test(elements_requete_service.join(' OR '), elements_requete_responsable.join());
    		}
     
    		function check_test(array1, array2) 
    		{
    		document.getElementById('conditions_requete_visu_3').value = ((array1!='')?array1:'')+(((array2!='') && (array1!=''))?(' AND '+array2): array2);
    		}
    et pas ca :

    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
     
    		<script type="text/javascript">
    		elements_requete_service = new Array();
    		elements_requete_responsable = new Array();
     
    		function check_service(val_input, valeur_condi) 
    		{
    		if (val_input) 
    			{
    			elements_requete_service.push(valeur_condi);
    			}
    			else
    				{
    				for(var i = 0; i < elements_requete_service.length; ++i)
    					{
    					if(elements_requete_service[i] == valeur_condi)
    						{
    						elements_requete_service.splice(i,1);
    						}
    					}
    				}
    		document.getElementById('conditions_requete').value =  elements_requete_service.join(' OR ');
    		document.getElementById('conditions_requete_visu').value =  elements_requete_service.join(' OR ');
    		document.getElementById('conditions_requete_visu_3').value=((elements_requete_service.length>0)?elements_requete_service.join(' OR '):'')+(((elements_requete_responsable.lenght>0) && (elements_requete_service.length>0))?(' AND '+elements_requete_responsable.join('')) : elements_requete_responsable.join(''));
    		}
     
    		function check_responsable(val_input, valeur_condi) 
    		{
    		if (val_input) 
    			{
    			elements_requete_responsable.push(valeur_condi);
    			}
    			else
    				{
    				for(var i = 0; i < elements_requete_responsable.length; ++i)
    					{
    					if(elements_requete_responsable[i] == valeur_condi)
    						{
    						elements_requete_responsable.splice(i,1);
    						}
    					}
    				}
    		document.getElementById('conditions_requete_2').value =  elements_requete_responsable.join();
    		document.getElementById('conditions_requete_visu_2').value =  elements_requete_responsable.join();
    		document.getElementById('conditions_requete_visu_3').value=((elements_requete_service.length>0)?elements_requete_service.join(' OR '):'')+(((elements_requete_responsable.lenght>0) && (elements_requete_service.length>0))?(' AND '+elements_requete_responsable.join('')): elements_requete_responsable.join(''));
    		}
    		</script>
    Le mystère reste entier pour moi

Discussions similaires

  1. Array dans un Array.. Dans un Array
    Par blinkman04 dans le forum Langage
    Réponses: 3
    Dernier message: 27/01/2014, 14h36
  2. Différence entre array arraylist ?
    Par sauceaupistou dans le forum Framework .NET
    Réponses: 7
    Dernier message: 28/03/2008, 22h01
  3. correspondances entre arrays
    Par Jasmine80 dans le forum Langage
    Réponses: 2
    Dernier message: 14/11/2007, 08h41
  4. Différence entre ARRAY et PACKED ARRAY
    Par homeostasie dans le forum Langage
    Réponses: 5
    Dernier message: 16/01/2007, 22h02
  5. Join entre 2 tables provenant de Base de donnees differentes
    Par edmotets dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/11/2005, 08h33

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