Fonction répetitive en javascript
Fermé
anto2b
Messages postés
119
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
18 décembre 2011
-
Modifié par anto2b le 8/10/2011 à 16:59
anto2b Messages postés 119 Date d'inscription jeudi 21 février 2008 Statut Membre Dernière intervention 18 décembre 2011 - 9 oct. 2011 à 11:46
anto2b Messages postés 119 Date d'inscription jeudi 21 février 2008 Statut Membre Dernière intervention 18 décembre 2011 - 9 oct. 2011 à 11:46
A voir également:
- Fonction répetitive en javascript
- Fonction si et - Guide
- Telecharger javascript - Télécharger - Langages
- Fonction moyenne excel - Guide
- Fonction miroir - Guide
- Fonction somme excel - Guide
18 réponses
jiantox
Messages postés
1092
Date d'inscription
mardi 30 septembre 2008
Statut
Membre
Dernière intervention
26 janvier 2019
114
8 oct. 2011 à 17:25
8 oct. 2011 à 17:25
salut
ta variable en php viens d'où ? ( si c'est de javascript sans ajax t'es balaise lol )
le plus simple serais d'incrémenter le numero de $pioche à chaque tour en passant ce numero en variable :
$num = 0;
function pioche($num) {
echo $pioche[$num];
$num++; }
et a chaque clique il rajoute 1 à num. un truc dans l'genre, à toi de voir apres selon ton codage, étant donné qu'on en a pas d'apercu.
ta variable en php viens d'où ? ( si c'est de javascript sans ajax t'es balaise lol )
le plus simple serais d'incrémenter le numero de $pioche à chaque tour en passant ce numero en variable :
$num = 0;
function pioche($num) {
echo $pioche[$num];
$num++; }
et a chaque clique il rajoute 1 à num. un truc dans l'genre, à toi de voir apres selon ton codage, étant donné qu'on en a pas d'apercu.
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
8 oct. 2011 à 17:26
8 oct. 2011 à 17:26
essaye ça, je n'ai pas testé:
<html> <head> <script type="text/javascript"> var tableau_pioche=new Array(); <?php //on va generer un array JS à partir de l'array php for($i=0;$i<sizeof($pioche);$i++){ echo 'tableau_pioche['.$i.']='.$pioche[$i].''; } ?> //init compteur en variable globale var cpt=0; function piocher() { if(cpt<tableau_pioche.length){ var e= document.getElementById('la_pioche'); e.innerHTML= '<img width="90px" src="cartes/'+tableau_pioche[cpt]+'" />'; e.style.display= 'block'; cpt++; }else{ alert('Fin de pioche atteinte'); } } </script> </head> <body> <div onclick="piocher();"></div> <div id="la_pioche"></div> </body> </html>
anto2b
Messages postés
119
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
18 décembre 2011
1
8 oct. 2011 à 17:40
8 oct. 2011 à 17:40
Voila mon code source :
Alain42 votre méthode ne marche pas malheureusement
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Jeu de carte</title> <link href="styles/style.css" rel="stylesheet" type="text/css" /> <SCRIPT LANGUAGE="Javascript"> function piocher(id) { var e= document.getElementById('la_pioche'); e.innerHTML= '<img width="90px" src=\"cartes/'+id+'"/>'; e.style.display= 'block'; } </SCRIPT> </head> <body> <div id="container"> <?php include'connect_bdd.php'; $jeu = array(); $i =0; $reponse = $bdd->query('SELECT * FROM cartes ORDER BY RAND()'); while ($donnees = $reponse->fetch()) { $jeu[$i] = $donnees['image']; //echo'<img width="110px" src="cartes/'.$jeu[$i].'" />'; $i++; } echo '<h1> Joueur 1 </h1>'; echo'<div><table height="155px"><tr>'; for($i=0;$i<16;$i=$i+2) echo'<td class="select_carte" style="z-index:'.$i.'"><img width="100%px" src="cartes/'.$jeu[$i].'" /></td>'; echo'</tr></table></div>'; // Passe entre jeu et pioche // for( $j=0 , $i=17 ; $i<52 ; $i++ , $j++) $pioche[$j] = $jeu[$i]; echo '<table><tr><td width="400px"><h1> Carte depot </h1></td><td><h1> Pioche </h1></td></tr>'; echo'<tr><td width="400px"><img src="cartes/'.$jeu[16].'" <img width="90px"/></td><td><div onclick="piocher(\''.$pioche[5].'\');"><img src="img/dos.png" width="90px"/></div></td><td><div id="la_pioche"></div></td></tr></table>'; echo '<h1> Joueur 2 </h1>'; echo'<div><table height="155px"><tr>'; for($i=1;$i<16;$i=$i+2) echo'<td class="select_carte" style="z-index:'.$i.'"><img width="100%px" src="cartes/'.$jeu[$i].'" /></td>'; echo'</tr></table></div>'; $reponse->closeCursor(); ?> </div> </body> </html>
Alain42 votre méthode ne marche pas malheureusement
jiantox
Messages postés
1092
Date d'inscription
mardi 30 septembre 2008
Statut
Membre
Dernière intervention
26 janvier 2019
114
8 oct. 2011 à 17:44
8 oct. 2011 à 17:44
vois comme j'ai proposé, incrémenter à chaque click le numero de $pioche via une fonction ( ou encore mieu, la fonction déja existante au click ;) )
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
anto2b
Messages postés
119
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
18 décembre 2011
1
8 oct. 2011 à 17:47
8 oct. 2011 à 17:47
Comment faire ?
jiantox
Messages postés
1092
Date d'inscription
mardi 30 septembre 2008
Statut
Membre
Dernière intervention
26 janvier 2019
114
8 oct. 2011 à 17:51
8 oct. 2011 à 17:51
onclick="piocher(\''.$pioche[5].'\');" pk le n° 5 et pas un autre ?
j'ai un peu de mal a piger ton codage, ta variable $pioche tu la recupere ici ? :
$pioche[$j] = $jeu[$i];
si c'est le cas pk tu l'utiliserais pas pour l'envoyer dans ta fonction ?
j'ai du mal à voir ton but en fait ^^
j'ai un peu de mal a piger ton codage, ta variable $pioche tu la recupere ici ? :
$pioche[$j] = $jeu[$i];
si c'est le cas pk tu l'utiliserais pas pour l'envoyer dans ta fonction ?
j'ai du mal à voir ton but en fait ^^
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
Modifié par Alain_42 le 8/10/2011 à 17:59
Modifié par Alain_42 le 8/10/2011 à 17:59
j'avais pas testé, modifie cette partie:
et d eplus comme tu defini ton array $pioche plus bas dans le php il faut que la fonction JS pioche() soit plus bas
tu peux très bien la déplacer juste avant la balise </body>
ce n'est pas obligatoire que toutes les fct JS soient dans le head
//on va generer un array JS à partir de l'array php for($i=0;$i<sizeof($pioche);$i++){ echo 'tableau_pioche['.$i.']="'.$pioche[$i].'";'; //cette ligne a modifier }
et d eplus comme tu defini ton array $pioche plus bas dans le php il faut que la fonction JS pioche() soit plus bas
tu peux très bien la déplacer juste avant la balise </body>
ce n'est pas obligatoire que toutes les fct JS soient dans le head
anto2b
Messages postés
119
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
18 décembre 2011
1
8 oct. 2011 à 17:59
8 oct. 2011 à 17:59
Cela ne marche toujours pas
anto2b
Messages postés
119
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
18 décembre 2011
1
8 oct. 2011 à 17:55
8 oct. 2011 à 17:55
Non en fait le numéro 5 c'est juste un exemple lol.
Alors en fait $jeu c'est un Array contenant le jeu de 52 carte stocker dans une base de donnée.
J'ai fait une affectation à un array $pioche qui va contenir les (52-16) cartes (les 16 première cartes du jeu sont celles distribués aux 2 joueurs).
Et c'est la que j'aimerais qu'a chaque fois que je clique sur pioche il y est une incrémentation pour afficher la carte suivante de la pioche.
Alors en fait $jeu c'est un Array contenant le jeu de 52 carte stocker dans une base de donnée.
J'ai fait une affectation à un array $pioche qui va contenir les (52-16) cartes (les 16 première cartes du jeu sont celles distribués aux 2 joueurs).
Et c'est la que j'aimerais qu'a chaque fois que je clique sur pioche il y est une incrémentation pour afficher la carte suivante de la pioche.
jiantox
Messages postés
1092
Date d'inscription
mardi 30 septembre 2008
Statut
Membre
Dernière intervention
26 janvier 2019
114
8 oct. 2011 à 17:58
8 oct. 2011 à 17:58
donc en gros il faudrais récuperer les 36 dernieres cartes qui reste, fait un compteur à part et les afficher
tu recupere le n° de la carte dans une variable ( exemple $num )
afficher la carte voulu ( $pioche[$num] )
et ensuite incrementer $num ( $num++; ) pour le prochain affichage
tu recupere le n° de la carte dans une variable ( exemple $num )
afficher la carte voulu ( $pioche[$num] )
et ensuite incrementer $num ( $num++; ) pour le prochain affichage
anto2b
Messages postés
119
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
18 décembre 2011
1
8 oct. 2011 à 18:03
8 oct. 2011 à 18:03
Mais comment l'indiquer dans mon code javascript car il ne faut pas actualiser la page
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
Modifié par Alain_42 le 8/10/2011 à 18:10
Modifié par Alain_42 le 8/10/2011 à 18:10
le code complet modifié, attention modif aussi dans le onclick="pioche()
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Jeu de carte</title> <link href="styles/style.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="container"> <?php include'connect_bdd.php'; $jeu = array(); $i =0; $reponse = $bdd->query('SELECT * FROM cartes ORDER BY RAND()'); while ($donnees = $reponse->fetch()) { $jeu[$i] = $donnees['image']; //echo'<img width="110px" src="cartes/'.$jeu[$i].'" />'; $i++; } echo '<h1> Joueur 1 </h1>'; echo'<div><table height="155px"><tr>'; for($i=0;$i<16;$i=$i+2) echo'<td class="select_carte" style="z-index:'.$i.'"><img width="100%px" src="cartes/'.$jeu[$i].'" /></td>'; echo'</tr></table></div>'; // Passe entre jeu et pioche // for( $j=0 , $i=17 ; $i<52 ; $i++ , $j++) $pioche[$j] = $jeu[$i]; echo '<table><tr><td width="400px"><h1> Carte depot </h1></td><td><h1> Pioche </h1></td></tr>'; ////ATTENTION modif aussi dans cette ligne ci dessous onclick= echo'<tr><td width="400px"><img src="cartes/'.$jeu[16].'" <img width="90px"/></td><td><div onclick="piocher();"><img src="img/dos.png" width="90px"/></div></td><td><div id="la_pioche"></div></td></tr></table>'; ///// echo '<h1> Joueur 2 </h1>'; echo'<div><table height="155px"><tr>'; for($i=1;$i<16;$i=$i+2) echo'<td class="select_carte" style="z-index:'.$i.'"><img width="100%px" src="cartes/'.$jeu[$i].'" /></td>'; echo'</tr></table></div>'; $reponse->closeCursor(); ?> <script type="text/javascript"> var tableau_pioche=new Array(); <?php //on va generer un array JS à partir de l'array php for($i=0;$i<sizeof($pioche);$i++){ echo 'tableau_pioche['.$i.']="'.$pioche[$i].'";'; } ?> //init compteur en variable globale var cpt=0; function piocher() { if(cpt<tableau_pioche.length){ alert("tableau= "+tableau_pioche[cpt]); var e= document.getElementById('la_pioche'); e.innerHTML= '<img width="90px" src="cartes/'+tableau_pioche[cpt]+'" />'; e.style.display= 'block'; cpt++; }else{ alert('Fin de pioche atteinte'); } } </script> </div> </body> </html>
anto2b
Messages postés
119
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
18 décembre 2011
1
8 oct. 2011 à 18:14
8 oct. 2011 à 18:14
Un grand merci, la methode d'Alain 42 marche. Mais j'aimerais qu'a la fin de la pioche ca recommence au debut de la pioche.
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
Modifié par Alain_42 le 8/10/2011 à 18:26
Modifié par Alain_42 le 8/10/2011 à 18:26
modifies ta fonction:
//init compteur en variable globale var cpt=0; function piocher() { if(cpt == tableau_pioche.length){ cpt=0; } var e= document.getElementById('la_pioche'); e.innerHTML= '<img width="90px" src="cartes/'+tableau_pioche[cpt]+'" />'; e.style.display= 'block'; cpt++; }
anto2b
Messages postés
119
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
18 décembre 2011
1
8 oct. 2011 à 18:33
8 oct. 2011 à 18:33
Pour finir il faudrait que la carte que je sélectionne de la pioche aille au joueur j1.
Comment faire ?
Comment faire ?
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
8 oct. 2011 à 18:52
8 oct. 2011 à 18:52
le <div id="la pioche"> est bien dans la partie du jouer j1
anto2b
Messages postés
119
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
18 décembre 2011
1
8 oct. 2011 à 18:53
8 oct. 2011 à 18:53
Faudrait que je crée une div a coté des cartes du joueur 1 ?
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
9 oct. 2011 à 10:23
9 oct. 2011 à 10:23
je ne sais pas je ne visualise pas ta page, mais tu peux très bien rajouter un div avec un id obligatoirement différend, et mettre dans ta fct JS une autre instruction d' innerHTML
var e2= document.getElementById('la_pioche2'); e2.innerHTML= '<img width="90px" ..........
anto2b
Messages postés
119
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
18 décembre 2011
1
9 oct. 2011 à 11:46
9 oct. 2011 à 11:46
Par contre dans la pioche j'ai remarquer un souci. Quand je sélectionne une carte , il faudrait qu'elle sorte de la pioche, comment faire ?