Partage
  • Partager sur Facebook
  • Partager sur Twitter

Rafraichir une div après validation de formulaire

    20 avril 2018 à 17:10:00

    Bonjour la comunauté !

    Après plusieures recherches et tests, je fait appel à votre aide car je reste bloqué. 

    Je fait des statistiques sur des matchs de billard. Ceux ci sont classés par mode de jeu, avec la possibilité d'appliquer un filtre pour avoir un détail par adversaire. Voila déjà un aperçu de la page pour que ce soit plus clair:

    Mon problème c'est que quand je valide un formulaire, bien entendu toute la page est rechargée et plusieurs problèmes se posent.

    Déjà la page se remet en haut (j'ai utilisé des ancres pour qu'au moins la partie concernée soit en haut de page ,mais c'est pas génial)

    Et ensuite, si par exemple je choisi un adversaire pour la 8, ça me met les stats pour l'adversaire choisi. Ok... Mais si j'applique le filtre pour la 9 ensuite, àa met bien les stats pour ce mode de jeu mais ça remet les stats général pour la 8.

    Donc j'aimerai qu'à la validation d'un des formulaires, ne soit rafraîchit uniquement le mode de jeu concerné.

    Voici mon code (il ne doit pas être très optimisé je sais, mais c'est un projet perso que j'aimerai mettre en place assez rapidement alors je fait comme je peu, je verrai ensuite pour le reprendre et optimiser mon code avec  de l'orienté objet, mais il faut que je me forme avant.)

    				<?php 
    
    
    				//------------------------------------------------------------
    				// Je vérifie le nombre de match joués par mode de jeu
    				//------------------------------------------------------------
    
    				// Matchs "8 ball américain"
    				$req_matchs_8us = $bdd->query('SELECT code_jeu, pseudo FROM matchs WHERE code_jeu = 1 AND pseudo = "'.$log.'"');
    				$nbr_matchs_8us = $req_matchs_8us->rowCount();
    
    				// Matchs "9 ball américain"
    				$req_matchs_9us = $bdd->query('SELECT code_jeu, pseudo FROM matchs WHERE code_jeu = 2 AND pseudo = "'.$log.'"');
    				$nbr_matchs_9us = $req_matchs_9us->rowCount();
    
    				// Matchs "10 ball américain"
    				$req_matchs_10us = $bdd->query('SELECT code_jeu, pseudo FROM matchs WHERE code_jeu = 3 AND pseudo = "'.$log.'"');
    				$nbr_matchs_10us = $req_matchs_10us->rowCount();
    
    				// Matchs "Pool Anglais WPA"
    				$req_matchs_wpa = $bdd->query('SELECT code_jeu, pseudo FROM matchs WHERE code_jeu = 6 AND pseudo = "'.$log.'"');
    				$nbr_matchs_wpa = $req_matchs_wpa->rowCount();
    
    
    				// Si il y a des matchs "8 ball US"
    				if ($nbr_matchs_8us > 0) {
    					$req_victoires_8us = $bdd->query('SELECT code_jeu, pseudo, scr, scr_adv FROM matchs WHERE code_jeu = 1 AND scr > scr_adv AND pseudo = "'.$log.'"');
    					$nbr_victoires_8us = $req_victoires_8us->rowCount();
    					$nbr_defaites_8us = $nbr_matchs_8us - $nbr_victoires_8us;
    					$pourcentage_victoires_8us = $nbr_victoires_8us * 100 / $nbr_matchs_8us;
    					$couleur_8us = couleurPourcent($pourcentage_victoires_8us);
    
    					// Je récupère le nombre de parties jouées
    					$req_parties_8us = $bdd->query('SELECT SUM(scr) AS sum_scr, SUM(scr_adv) AS sum_scr_adv, SUM(cf) AS sum_cf, SUM(rf) AS sum_rf FROM matchs WHERE code_jeu = 1 AND pseudo = "'.$log.'"');
    					$parties_8us = $req_parties_8us->fetch();
    					$total_parties_8us = $parties_8us['sum_scr'] + $parties_8us['sum_scr_adv'];
    					
    					$casses_fermes_8us = $parties_8us['sum_cf'];
    					$reprises_fermes_8us =  $parties_8us['sum_rf'];
    					$fermes_8us = $casses_fermes_8us + $reprises_fermes_8us;
    					$pourcentage_fermes_8us = $fermes_8us * 100 / $total_parties_8us;
    				 	?>
    				 	<div class="ancres" id="ancre1"></div>
    					<section class="vignettex1">
    						<div class="header_vignettes">
    							<span class="entete_vignettes">8 ball - Billard américain
    								<form class="filtre_adv" action="#ancre1" method="post">
    									<label for="adversaire" value="adversaire"></label>
    									<select class="input-matchs" id="adversaire" name="adversaire">
    										<option>Filtrer par adversaire</option>
    										<?php
    										//Je récupère la liste des adversaires de l'utilisateur
    										$req_adversaires = $bdd->query('SELECT adversaire FROM adversaires WHERE pseudo="'.$log.'" ORDER BY adversaire'); 
    										while ($adversaires9 = $req_adversaires->fetch()) {
    										?>
    										<option><?php echo $adversaires9['adversaire']; ?></option>
    										<?php
    										} ?>				
    									</select>	
    									<input class="" type="submit" name="filtre_adv8" id="filtre_adv8" value="Appliquer">			
    									<input class="" type="submit" name="" id="" value="Annuler" />			
    								</form>
    							</span>
    						</div>
    						<div class="separateur_vignettes"></div>
    						<article class="vignettes">	
    							<?php 
    							// Si le formulaire de filtre adversaire est soumis
    							if (isset($_POST['filtre_adv8'])) {
    								// Je vérifie si il y a des matchs joués avec l'adversaire sélectionné
    								$adv = $_POST['adversaire'];
    								$req_matchs_8us_adv = $bdd->query('SELECT code_jeu, pseudo, adversaire FROM matchs WHERE code_jeu = 1 AND adversaire = "'.$adv.'" AND pseudo = "'.$log.'"');
    								$nbr_matchs_8us_adv = $req_matchs_8us_adv->rowCount();
    
    								// Si il y a des matchs joués
    								if ($nbr_matchs_8us_adv > 0) {								
    									$req_victoires_8us_adv = $bdd->query('SELECT code_jeu, pseudo, adversaire, scr, scr_adv FROM matchs WHERE code_jeu = 1 AND scr > scr_adv AND adversaire = "'.$adv.'" AND pseudo = "'.$log.'"');
    									$nbr_victoires_8us_adv = $req_victoires_8us_adv->rowCount();
    									$nbr_defaites_8us_adv = $nbr_matchs_8us_adv - $nbr_victoires_8us_adv;
    									$pourcentage_victoires_8us_adv = $nbr_victoires_8us_adv * 100 / $nbr_matchs_8us_adv;
    									$couleur_8us_adv = couleurPourcent($pourcentage_victoires_8us_adv);
    
    									// Je récupère le nombre de parties jouées avec l'adversaire
    									$req_parties_8us_adv = $bdd->query('SELECT SUM(scr) AS sum_scr, SUM(scr_adv) AS sum_scr_adv, SUM(cf) AS sum_cf, SUM(rf) AS sum_rf FROM matchs WHERE code_jeu = 1 AND adversaire = "'.$adv.'" AND pseudo = "'.$log.'"');
    									$parties_8us_adv = $req_parties_8us_adv->fetch();
    									$total_parties_8us_adv = $parties_8us_adv['sum_scr'] + $parties_8us_adv['sum_scr_adv'];
    									$casses_fermes_8us_adv = $parties_8us_adv['sum_cf'];
    									$reprises_fermes_8us_adv =  $parties_8us_adv['sum_rf'];
    									$fermes_8us_adv = $casses_fermes_8us_adv + $reprises_fermes_8us_adv;
    									$pourcentage_fermes_8us_adv = $fermes_8us_adv * 100 / $total_parties_8us_adv;
    									?>
    									<span class="textes_vignettes">Nombre de matchs joués: <span class="donnees"><?php echo $nbr_matchs_8us_adv; ?></span></span>
    									<span class="textes_vignettes">Victoires: <span class="donnees green"><?php echo $nbr_victoires_8us_adv; ?></span></span>
    									<span class="textes_vignettes">Défaites: <span class="donnees red"><?php echo $nbr_defaites_8us_adv; ?></span></span>
    									<div class="pourcentage">
    										<img src="images/trophee.png" alt="">
    										<span class="pourcent <?php echo $couleur_8us_adv; ?>"> <?php echo round($pourcentage_victoires_8us_adv, 1); ?>%</span>
    									</div>			
    									<span class="textes_vignettes">Nombre de parties: <span class="donnees"><?php echo $total_parties_8us_adv; ?></span></span>
    									<span class="textes_vignettes">Casse-fermes: <span class="donnees"><?php echo $casses_fermes_8us_adv; ?></span></span>
    									<span class="textes_vignettes">Reprises: <span class="donnees"><?php echo $reprises_fermes_8us_adv; ?></span></span>	
    									<div class="pourcentage">
    										<img src="images/billefeu.png" alt="">
    										<span class="pourcent grey"> <?php echo round($pourcentage_fermes_8us_adv, 1); ?>%</span>
    									</div>
    
    									<?php	
    								}
    								else{
    									echo "Aucun match trouvé avec cet adversaire";
    								}
    
    							}
    							else{						
    								?>
    								<span class="textes_vignettes">Nombre de matchs joués: <span class="donnees"><?php echo $nbr_matchs_8us; ?></span></span>
    								<span class="textes_vignettes">Victoires: <span class="donnees green"><?php echo $nbr_victoires_8us; ?></span></span>
    								<span class="textes_vignettes">Défaites: <span class="donnees red"><?php echo $nbr_defaites_8us; ?></span></span>
    								<div class="pourcentage">
    									<img src="images/trophee.png" alt="">
    									<span class="pourcent <?php echo $couleur_8us; ?>"> <?php echo round($pourcentage_victoires_8us, 1); ?>%</span>
    								</div>			
    								<span class="textes_vignettes">Nombre de parties: <span class="donnees"><?php echo $total_parties_8us; ?></span></span>
    								<span class="textes_vignettes">Casse-fermes: <span class="donnees"><?php echo $casses_fermes_8us; ?></span></span>
    								<span class="textes_vignettes">Reprises: <span class="donnees"><?php echo $reprises_fermes_8us; ?></span></span>	
    								<div class="pourcentage">
    									<img src="images/billefeu.png" alt="">
    									<span class="pourcent grey"> <?php echo round($pourcentage_fermes_8us, 1); ?>%</span>
    								</div>									
    								<?php
    							}
    							?>
    						</article>
    					</section>				 	
    				 	<?php
    				}
    
    				// Si il y a des matchs "9 ball US"
    				if ($nbr_matchs_9us > 0) {
    					$req_victoires_9us = $bdd->query('SELECT code_jeu, pseudo, scr, scr_adv FROM matchs WHERE code_jeu = 2 AND scr > scr_adv AND pseudo = "'.$log.'"');
    					$nbr_victoires_9us = $req_victoires_9us->rowCount();
    					$nbr_defaites_9us = $nbr_matchs_9us - $nbr_victoires_9us;
    					$pourcentage_victoires_9us = $nbr_victoires_9us * 100 / $nbr_matchs_9us;
    					$couleur_9us = couleurPourcent($pourcentage_victoires_9us);
    
    					// Je récupère le nombre de parties jouées
    					$req_parties_9us = $bdd->query('SELECT SUM(scr) AS sum_scr, SUM(scr_adv) AS sum_scr_adv, SUM(cf) AS sum_cf, SUM(rf) AS sum_rf FROM matchs WHERE code_jeu = 2 AND pseudo = "'.$log.'"');
    					$parties_9us = $req_parties_9us->fetch();
    					$total_parties_9us = $parties_9us['sum_scr'] + $parties_9us['sum_scr_adv'];
    					$casses_fermes_9us = $parties_9us['sum_cf'];
    					$reprises_fermes_9us =  $parties_9us['sum_rf'];
    					$fermes_9us = $casses_fermes_9us + $reprises_fermes_9us;
    					$pourcentage_fermes_9us = $fermes_9us * 100 / $total_parties_9us;					
    				 	?>
    				 	<div class="ancres" id="ancre2"></div>
    					<section class="vignettex1">
    						<div class="header_vignettes">
    							<span class="entete_vignettes">9 ball - Billard américain
    								<form class="filtre_adv" action="#ancre2" method="post">
    									<label for="adversaire" value="adversaire"></label>
    									<select class="input-matchs" id="adversaire" name="adversaire">
    										<option>Filtrer par adversaire</option>
    										<?php 
    										//Je récupère la liste des adversaires de l'utilisateur
    										$req_adversaires = $bdd->query('SELECT adversaire FROM adversaires WHERE pseudo="'.$log.'" ORDER BY adversaire'); 										
    										while ($adversaires = $req_adversaires->fetch()) {
    										?>
    										<option><?php echo $adversaires['adversaire']; ?></option>
    										<?php
    										} ?>				
    									</select>	
    									<input class="" type="submit" name="filtre_adv9" id="filtre_adv9" value="Appliquer" />			
    									<input class="" type="submit" name="" id="" value="Annuler" />			
    								</form>
    							</span>
    						</div>
    						<div class="separateur_vignettes"></div>
    						<article class="vignettes">	
    							<?php 
    							if (isset($_POST['filtre_adv9'])) {
    								$adv = $_POST['adversaire'];
    								$req_matchs_9us_adv = $bdd->query('SELECT code_jeu, pseudo, adversaire FROM matchs WHERE code_jeu = 2 AND adversaire = "'.$adv.'" AND pseudo = "'.$log.'"');
    								$nbr_matchs_9us_adv = $req_matchs_9us_adv->rowCount();
    
    								$req_victoires_9us_adv = $bdd->query('SELECT code_jeu, pseudo, adversaire, scr, scr_adv FROM matchs WHERE code_jeu = 2 AND scr > scr_adv AND adversaire = "'.$adv.'" AND pseudo = "'.$log.'"');
    								$nbr_victoires_9us_adv = $req_victoires_9us_adv->rowCount();
    								$nbr_defaites_9us_adv = $nbr_matchs_9us_adv - $nbr_victoires_9us_adv;
    								$pourcentage_victoires_9us_adv = $nbr_victoires_9us_adv * 100 / $nbr_matchs_9us_adv;
    								$couleur_9us_adv = couleurPourcent($pourcentage_victoires_9us_adv);
    
    								// Je récupère le nombre de parties jouées avec l'adversaire
    								$req_parties_9us_adv = $bdd->query('SELECT SUM(scr) AS sum_scr, SUM(scr_adv) AS sum_scr_adv, SUM(cf) AS sum_cf, SUM(rf) AS sum_rf FROM matchs WHERE code_jeu = 2 AND adversaire = "'.$adv.'" AND pseudo = "'.$log.'"');
    								$parties_9us_adv = $req_parties_9us_adv->fetch();
    								$total_parties_9us_adv = $parties_9us_adv['sum_scr'] + $parties_9us_adv['sum_scr_adv'];
    								$casses_fermes_9us_adv = $parties_9us_adv['sum_cf'];
    								$reprises_fermes_9us_adv =  $parties_9us_adv['sum_rf'];
    								$fermes_9us_adv = $casses_fermes_9us_adv + $reprises_fermes_9us_adv;
    								$pourcentage_fermes_9us_adv = $fermes_9us_adv * 100 / $total_parties_9us_adv;								
    								?>
    								<span class="textes_vignettes">Nombre de matchs joués: <span class="donnees"><?php echo $nbr_matchs_9us_adv; ?></span></span>
    								<span class="textes_vignettes">Victoires: <span class="donnees green"><?php echo $nbr_victoires_9us_adv; ?></span></span>
    								<span class="textes_vignettes">Défaites: <span class="donnees red"><?php echo $nbr_defaites_9us_adv; ?></span></span>
    								<div class="pourcentage">
    									<img src="images/trophee.png" alt="">
    									<span class="pourcent <?php echo $couleur_9us_adv; ?>"> <?php echo round($pourcentage_victoires_9us_adv, 1); ?>%</span>
    								</div>			
    								<span class="textes_vignettes">Nombre de parties: <span class="donnees"><?php echo $total_parties_9us_adv; ?></span></span>
    								<span class="textes_vignettes">Casse-fermes: <span class="donnees"><?php echo $casses_fermes_9us_adv; ?></span></span>
    								<span class="textes_vignettes">Reprises: <span class="donnees"><?php echo $reprises_fermes_9us_adv; ?></span></span>	
    								<div class="pourcentage">
    									<img src="images/billefeu.png" alt="">
    									<span class="pourcent grey"> <?php echo round($pourcentage_fermes_9us_adv, 1); ?>%</span>
    								</div>	
    								<?php						
    							}
    							else{						
    								?>
    								<span class="textes_vignettes">Nombre de matchs joués: <span class="donnees"><?php echo $nbr_matchs_9us; ?></span></span>
    								<span class="textes_vignettes">Victoires: <span class="donnees green"><?php echo $nbr_victoires_9us; ?></span></span>
    								<span class="textes_vignettes">Défaites: <span class="donnees red"><?php echo $nbr_defaites_9us; ?></span></span>
    								<div class="pourcentage">
    									<img src="images/trophee.png" alt="">
    									<span class="pourcent <?php echo $couleur_9us; ?>"> <?php echo round($pourcentage_victoires_9us, 1); ?>%</span>
    								</div>			
    								<span class="textes_vignettes">Nombre de parties: <span class="donnees"><?php echo $total_parties_9us; ?></span></span>
    								<span class="textes_vignettes">Casse-fermes: <span class="donnees"><?php echo $casses_fermes_9us; ?></span></span>
    								<span class="textes_vignettes">Reprises: <span class="donnees"><?php echo $reprises_fermes_9us; ?></span></span>	
    								<div class="pourcentage">
    									<img src="images/billefeu.png" alt="">
    									<span class="pourcent grey"> <?php echo round($pourcentage_fermes_9us, 1); ?>%</span>
    								</div>									
    							<?php
    							}
    							?>
    						</article>
    					</section>						 	
    				 	<?php
    				}
    

    Merci pour votre aide

    • Partager sur Facebook
    • Partager sur Twitter
      20 avril 2018 à 17:32:33

      Salut.

      Ajax est ton ami...

      • Partager sur Facebook
      • Partager sur Twitter
        20 avril 2018 à 22:12:39

        Merci pour cette réponse pertinente.... 

        Je me serait presque douté qu'il me faut de l'Ajax.... et c'est pour ça que je poste ici o_O

        Je suis complètement novice dans ce domaine, alors je demande pas un code tout fait mais au moins des pistes sur lesquelles m'orienter pour savoir ou commencer et qui correspondent à mon cas. 

        J'ai essayé ça mais sans résultat, ou je m'y suis mal pris:

        https://slamwiki.kobject.net/_media/tuto_jquery.pdf

        • Partager sur Facebook
        • Partager sur Twitter

        Rafraichir une div après validation de formulaire

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown