Copier un lien avec variable dans une boucle while

Suivre ce topic
Ce topic est suivi par : TXSYN
Ce topic a été résolu
TXSYN

TXSYN Le 29 octobre 2018 à 20:06 (Édité le 25 janvier 2019 à 17:54)

Bonjour, tentant de créer un bouton permettant de copier l'url d'une page d'un des produits d'une boucle while les affichant tous, je fais face a un problème de code. 

CODE php simplifié: (page product)
<?php while($a = $products->fetch()) { ?>
  
<!-- Bouton pour copier lien -->
<button onclick="myFunction()" data-idproduct="<?=$a['id']?>"><span class="glyphicon glyphicon-share-alt" aria-hidden="true"></span></button>
  
<?php } ?>

js:

function myFunction() {
  
var idproduct = $(this).data('idproduct');
var copyText = 'https://*****/product-detail.php?id='+idproduct;
 
  
  copyText.select();
  
  
  document.execCommand("copy");
}

Le code ne fonctionnant pas j'en viens a demander votre aide.. En effet, je ne copie rien, merci pas avance pour votre aide. 
TXSYN

TXSYN Le 30 octobre 2018 à 13:24

Réponse de Clouder (Le fondateur du site "sitedudev.com")
Lien du sujet résolu

Bonjour Synetic LoOny,
J'ai un peu changé la façon de ton code :
HTML :
<button onclick="myFunction(1)" data-idproduct="1" id="js1">    <span class="glyphicon glyphicon-share-alt" aria-hidden="true">1</span></button><button onclick="myFunction(2)" data-idproduct="2" id="js2">    <span class="glyphicon glyphicon-share-alt" aria-hidden="true">2</span></button><button onclick="myFunction(3)" data-idproduct="3" id="js3">    <span class="glyphicon glyphicon-share-alt" aria-hidden="true">3</span></button><button onclick="myFunction(4)" data-idproduct="4" id="js4">    <span class="glyphicon glyphicon-share-alt" aria-hidden="true">4</span></button>
JavaScript :
<script type="text/javascript">    function myFunction(e) {        var monelement, idproduct, link, copyText;        monelement = document.getElementById('js' + e);        idproduct = monelement.getAttribute('data-idproduct');        link = 'https://*****/product-detail.php?id=' + idproduct;        copyText = document.createElement('input');        document.body.appendChild(copyText);        copyText.value = link;
        copyText.select();

        try {            document.execCommand('copy');            copyText.remove();
            alert('Le texte a été copié');        }catch (err) {            alert('Le texte n\'a pas été copié');        }
    }
</script>
Si je réduis le HTML en PHP, cela donnera :
<?php     while($a = $products->fetch()) { ?><button onclick="myFunction(<?=$a['id']?>)" data-idproduct="<?=$a['id']?>" id="js<?=$a['id']?>">    <span class="glyphicon glyphicon-share-alt" aria-hidden="true"><?=$a['id']?></span></button><?php     } 
?>
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte