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 :

Copier dans le presse papier le contenu d'une case d'une base de données


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Copier dans le presse papier le contenu d'une case d'une base de données
    Bonjour,
    je poste ce sujet dans javascript car j'ai cru comprendre que la réponse serait surement au sujet d'un javascript mais je ne suis sur de rien !

    J'ai un code de la forme :

    <?php
    $reponse = mysql_query("SELECT * FROM users");

    // On fait une boucle pour lister tout ce que contient la table :
    while ($donnees = mysql_fetch_array($reponse) )
    {
    echo $donnees['email']; ?> &nbsp &nbsp
    <?php
    echo $donnees['prenom']; ?> <br>
    <?php
    }
    ?>
    Ce que je souhaiterai faire est de placer un lien (sous forme de bouton ou de texte par exemple) juste à coté de la valeur retourné par $donnees['email'] et pareil à coté de celle retourné par $donnees['prenom'] qui permettrait de copier dans le presse papier la valeur contenu dans ce tableau PHP

    Ce qui ferait quelque chose du genre :
    quelquechose@hotmail.com [COPIER] Maurice [COPIER]
    adresse2@hotmail.com [COPIER] Pierre [COPIER]
    En vous remerciant et en espérant que ma requête semble claire

    PS : Je ne connais rien du tout en javascript ._.

  2. #2
    Membre régulier Avatar de Lideln75
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 111
    Points : 102
    Points
    102
    Par défaut
    Bonsoir,

    Il faut essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    window.clipboardData.setText('Text', sTheStringToCopy);
    Pour plus d'infos :
    http://www.dynamic-tools.net/toolbox/copyToClipboard/

    Par contre, penser à vérifier la compatibilité navigateurs aussi !

    PS : jveux pas faire mon relou mais bon un ptit google "javascript copy to clipboard" et le tour est joué...

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    J'ai déjà beaucoup cherché dans google, j'ai vu vite fait le code javascript mais ce que je veux c'est une syntaxe correct pour que la fonction prenne en compte le contenu du tableau $donnee['email'] et $donnee['prenom'] qui font référence à ma base de données
    C'est bien gentil de me donner une ligne comme ça mais sans syntaxe ça va être compliqué...

  4. #4
    Membre régulier Avatar de Lideln75
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 111
    Points : 102
    Points
    102
    Par défaut
    Pas très sympa comme réponse !

    Bon alors si j'ai bien compris :
    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
     
    <?php
    $mRes = mysql_query('SELECT email, prenom FROM users');
    while ($aRow = mysql_fetch_assoc($mRes))
    {
    ?>
         <?php echo $aRow['email']; ?> <span onclick="copyClipboard('<?php echo $aRow['email']; ?>');">(copier)</span>
         <?php echo $aRow['prenom']; ?> <span onclick="copyClipboard('<?php echo $aRow['prenom']; ?>');">(copier)</span>
         <br />
    <?php
    }
    ?>
     
    <script type="text/javascript">
    function copyClipboard(sTheStringToCopy)
    {
         window.clipboardData.setText('Text', sTheStringToCopy);
    }
    </script>
    Il reste à faire attention aux caractères spéciaux (genre si le prénom contient un simple quote, ça va bugger), et vérifier que clipboardData existe et setText aussi (cf le lien que j'ai donné dans mon 1er post).

    C'est mieux ?

    PS : "j'ai déjà beaucoup cherché dans google" --> à moins que j'aie rien compris à ce que tu veux faire, c'est mdr de dire ça quand même ! 1er lien dans google !!!

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Je te remercie, les span ne fonctionnent pas car ils ne créent pas de lien mais je l'ai adapté avec des liens de la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="javascript:copyclipboard('<?php echo $donnees['email']; ?>');">(Copier)</a>
    Pour m'expliquer quand je disais que j'ai beaucoup cherché sur google, c'est que je cherchais un moyen de passer à la fonction directement le contenu du tableau $donnees en lui disant d'aller la lire puis de la copier.
    Je n'ai effectivement pas pensé à faire un echo à l'intérieur du lien html...Je cherchais à faire autrement et donc je te remercie il y avait beaucoup plus simple que ce que je cherchais à faire ._.

    Désolé si j'ai pu paraître désagréable mais j'ai réellement cherché longtemps, c'est pour ça que je savais déjà que j'aurai besoin d'un script js ^^' car effectivement j'avais trouvé le script mais après je cherchais la syntaxe pour l'adapter à mon cas. Je débute en PHP et je ne connais rien en js donc bon pas facile.
    En tout cas ça fonctionne, dommage que ça soit seulement sur IE, sur mozilla il doit y avoir un moyen puisque sur certains sites il y a un lien "copier dans le presse papier" qui fonctionne, il doit surement falloir adapter la fonction

    Sur ce problème résolu encore merci !

    Edit : Si ça peut être utilise à quelqu'un, après avoir recherché une adaptation du script pour qu'il fonctionne sur mozilla j'ai trouvé ce script là qui fonctionne une fois que vous avez réglé firefox pour qu'il accepte l'accès au presse papier :
    1) Lancer une page et aller à l'adresse : about:config
    2) Dans Filtre, ecrire : signed.applets.codebase_principal_support
    3) Double cliquer sur l'option trouvée pour passer la valeur à true

    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
    <script language="javascript" type="text/javascript">
    <!--
    function copyclipboard(meintext)
    {
     
     if (window.clipboardData) 
       {
     
       // the IE-manier
       window.clipboardData.setData("Text", meintext);
     
       // waarschijnlijk niet de beste manier om Moz/NS te detecteren;
       // het is mij echter onbekend vanaf welke versie dit precies werkt:
       }
       else if (window.netscape) 
       { 
     
       // dit is belangrijk maar staat nergens duidelijk vermeld:
       netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
     
       // maak een interface naar het clipboard
       var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
       if (!clip) return;
     
       // maak een transferable
       var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
       if (!trans) return;
     
       // specificeer wat voor soort data we op willen halen; text in dit geval
       trans.addDataFlavor('text/unicode');
     
       // om de data uit de transferable te halen hebben we 2 nieuwe objecten nodig   om het in op te slaan
       var str = new Object();
       var len = new Object();
     
       var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
     
       var copytext=meintext;
     
       str.data=copytext;
     
       trans.setTransferData("text/unicode",str,copytext.length*2);
     
       var clipid=Components.interfaces.nsIClipboard;
     
       if (!clip) return false;
     
       clip.setData(trans,null,clipid.kGlobalClipboard);
     
       }
    }
    //-->
    </script>

  6. #6
    Membre régulier Avatar de Lideln75
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 111
    Points : 102
    Points
    102
    Par défaut
    Ravi que ça fonctionne !

    Cependant, je pourrai te conseiller (si tu veux vraiment utiliser les anchors) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="#" onclick="copyClipboard('mes données'); return false;">Copier</a>
    C'est mal de mettre du JS dans le href.
    Et pourquoi il y a un return false dans le onclick ? Tout simplement parce que si on ne le met pas, l'événement du clic va se propager, et donc le comportement par défaut de clic sur un lien/anchor va s'activer, et on ne veut pas ça ! (ça causerait une remontée en haut de la page, en l'occurrence)

    Voilà, à bientôt !

  7. #7
    Membre actif Avatar de nod__
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 176
    Points : 226
    Points
    226
    Par défaut
    Je dirais même plus, que l'élement consacré pour ce genre de chose n'est pas <a> mais <button>
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <button type="button" onclick="copyClipboard('mes données');">Copier</button>
    C'est pas le fait d'avoir du javascript dans le href qui est mauvais, c'est le fait que le lien ne soit pas valide et/ou qu'il ne pointe nul part. D'où l'utilisation de <button> qui n'a aucune conotation de "lien" puisque qu'ici c'est clairement le but de faire un lien.

  8. #8
    Membre régulier Avatar de Lideln75
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 111
    Points : 102
    Points
    102
    Par défaut
    Tu prêches un converti de ne PAS utiliser d'anchor pour faire une action qui ne nécessite aucun lien (combien de fois je l'ai vu chez mes clients... et du coup la page remonte tout en haut à cause de l'oubli du return false, c'est gavant...)

    Par contre il me semblait (après je peux très bien me tromper) que mettre du javascript dans le href n'avait pas le même comportement partout (et puis c'est pas prévu pour de toutes façons).

    Voilà allez je file bonne journée !

  9. #9
    Membre actif Avatar de nod__
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 176
    Points : 226
    Points
    226
    Par défaut
    Citation Envoyé par Lideln75 Voir le message
    Tu prêches un converti de ne PAS utiliser d'anchor pour faire une action qui ne nécessite aucun lien (combien de fois je l'ai vu chez mes clients... et du coup la page remonte tout en haut à cause de l'oubli du return false, c'est gavant...)!
    Apparement le créateur du topic n'est pas un converti, je ne disais pas ça pour toi

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

Discussions similaires

  1. Copier dans le presse papier le contenu d'un Select
    Par androo dans le forum VBScript
    Réponses: 8
    Dernier message: 17/02/2012, 20h47
  2. fonction:copier dans le presse papier
    Par marie2006 dans le forum InfoPath
    Réponses: 3
    Dernier message: 21/10/2008, 11h10
  3. Bouton pour copier dans le presse-papier chez le client
    Par kuja2053 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 29/08/2007, 17h01
  4. Bouton copier dans le presse-papier
    Par beru333 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 02/08/2007, 17h28
  5. Copier dans le presse-papier
    Par Raphs dans le forum Access
    Réponses: 4
    Dernier message: 08/08/2006, 10h45

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