Bonjour, je vous explique mon problème.
J'ai un champ de type input "nom", quand je le rempli, il créer une ligne dans ma base de donnée avec le nom que j'ai mis dans le champ, et ensuite il l'affiche en dessous.
Pour ça aucun soucis, le problème c'est que au dessus de tout ça, j'ai un div "Liste des élèves" avec le nombre d'élèves total de ma table, pour afficher le nombre total aucun soucis non plus, mon problème c'est au moment d'ajouter un élève, il me change bien le nombre total mais en gros, il change un peu n'importe comment, assez aléatoirement. (je précise que le changement se fait sans actualiser la page)
Par aléatoirement je veux dire par exemple:
- Je vais avoir 0 élève, je vais en ajouter un , et là ça va passer directement à 1 élève.
- Je vais avoir 0 élève, je vais en ajouter un , et là ça va rester à 0 (mais si j'actualise, il me passe bien a 1 élève)
- Je vais avoir 0 élève, je vais en ajouter un, et ça va rien faire, je vais en rajouter un autre, et là il y aura 2 élèves, il va bien faire le changement.
Sauriez vous de quoi ça peut venir ?
merci d'avance.
Voici mon code:
eleves.php (form + jquery/ajax)
Code HTML : 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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87 <?php session_start(); include "../inc/db.php"; $req = $bdd->query("SELECT * FROM eleve"); $reponse = $req->fetchAll(); $req_nombre = $bdd->query("SELECT * FROM eleve"); $nombre_eleve = $req_nombre->rowCount(); ?> <?php include "../inc/header.php"; ?> <div class="breadcrumbs"> <div class="page-header float-left"> <div class="page-title"> <h1>Listes des élèves - <span id="nombre_eleve"><?= $nombre_eleve ?></span> enregistré(s)</h1> </div> </div> </div> <div class="content mt-3"> <form method="POST" action=""> <input type="text" id="liste_nom" placeholder="Nom" /> <input type="submit" value="Ajouté" id="submit"> </form> <div id="all_eleve"> <?php $req = $bdd->query("SELECT * FROM eleve ORDER BY id DESC"); $resultats = $req->fetchAll(); ?> <?php foreach($resultats as $r) { ?> Nom: <?= $r['liste_nom']; ?><br> <?php } ?> </div> </div> <script> $("#submit").click(function (e) { e.preventDefault(); var liste_nom= $("#liste_nom").val(); if(liste_nom) { $.ajax({ type: "POST", url: "fetch.php", data: { liste_nom:liste_nom }, success: function(response) { document.getElementById("all_eleve").innerHTML=response+document.getElementById("all_eleve").innerHTML; } }); $.ajax({ type: "POST", url: "nombre_eleve.php", data: { liste_nom:liste_nom }, success: function(data) { $("#nombre_eleve").html(data); } }); } }); </script> </body> </html>
fetch.php (traitement pour l'ajout d'un élève)
Code PHP : 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 <?php include "../inc/db.php"; if(isset($_POST['liste_nom'])) { $liste_nom = $_POST['liste_nom']; $insert = $bdd->prepare("INSERT INTO eleve (liste_nom) VALUES ('$liste_nom')"); $insert->execute(); $select = $bdd->query("SELECT * FROM eleve WHERE liste_nom='$liste_nom'"); $response = $select->fetchAll(); if($select) { foreach($response as $r) { echo 'Nom: '.$r["liste_nom"].'<br>'; } } } ?>
nombre_eleve.php (traitement pour changer le nombre total d'élève)
Code PHP : 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 <?php include "../inc/db.php"; if(isset($_POST['liste_nom'])) { $liste_nom = $_POST['liste_nom']; $req_nombre_eleve = $bdd->query("SELECT * FROM eleve"); $nombre_eleve = $req_nombre_eleve->rowCount(); if($req_nombre_eleve) { echo ''.$nombre_eleve.''; } } ?>
Partager