A voir également:
- Fonction répetitive en javascript
- Fonction si et - Guide
- Telecharger javascript - Télécharger - Langages
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
18 réponses
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.
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>
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
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
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 ^^
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
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.
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
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>
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.
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++; }
Pour finir il faudrait que la carte que je sélectionne de la pioche aille au joueur j1.
Comment faire ?
Comment faire ?