Bonjour à tous,
Après une semaine complète de recherche et de bidouille j'abandonne et quémande de l'aide.
J'ai un tableau fonctionnant en AJAX dans lequel chaque ligne est un input: modifiable et supprimable + un formulaire pour ajouter une ligne au tableau.
Tout marche à la perfection excepté si je tente d'ajouter une ligne au tableau puis de la supprimer directement après sans rafraîchir la page au préalable.
Quand j'ajoute la ligne puis je là supprime, du côté serveur cela se passe correctement et la ligne disparaît bien de la BDD, par contre je suis envoyé sur la page "supprimgage_post.php?numerojeux=jeux1" bien que toutes les données soient bien transférées.
Auriez-vous une idée de ce qui bloque?
HTML:
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 // Formulaire ajout ligne au tableau <form class="formajoutgage" id="submitnewgage" name="connection" method="post" action="ajoutergagejeux_post.php?numerojeux=jeux1"> <div class="strut" style="width:0%;"></div> <input class="inputajouttitre" type="text" id="titrejeux" name="titrejeux" maxlength="22" placeholder="Ajoutez le titre" required /> <input class="inputajoutgage" type="text" id="gagejeux" name="gagejeux" maxlength="116" placeholder="Ajoutez le gage" required /> <input type="submit" class="inputsubmitgage" value="Ajoutez"/> </form> <tbody id="bodytableau"> <?php try { // Connexion BBD $query = $bdd->query("SELECT idjeux, titrejeux, gagejeux, numero FROM membrejeux WHERE pseudo = '".$_SESSION['pseudo']."' && jeux = 'jeux1' && numero >=1 && numero <=25 ORDER BY numero ASC"); // Requete pour obtenir les lignes du tableau } while ($donnees = $query->fetch()) // Affichage lignes du tableau echo ' <tr class="'.$donnees['idjeux'].'"> <td class="col1"> <form class="formcachejeuxmodif" action="modifgage_post.php?numerojeux=jeux1" method="post"> //Formulaire pour modifier ligne <input type="text" name="numero" value="'.$donnees['numero'].'" /> </td> <td class="col2"><input type="text" name="titrejeux" value="'.$donnees['titrejeux'].'" /></td> <td class="col3"><input type="text" name="gagejeux" value="'.$donnees['gagejeux'].'" /></td> <input type="hidden" style="display:none;" name="idjeux" value="'.$donnees['idjeux'].'" /> <td class="col4 '.$donnees['idjeux'].'"> <input type="submit" value="modifier" /> </form> <form class="formcachejeux3" action="supprimgage_post.php?numerojeux=jeux1" method="post"> //Formulaire pour supprimer ligne <input type="hidden" name="idjeux" value="'.$donnees['idjeux'].'" /> <input type="hidden" name="titrejeux" value="'.$donnees['titrejeux'].'" /> <input type="hidden" name="gagejeux" value="'.$donnees['gagejeux'].'" /> <input type="hidden" style="display:none;" name="numero" value="'.$donnees['numero'].'" /> <input type="submit" value="supprimer" /> </form> </td> </tr> '; } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } ?> </div> </tbody> </table>
AJAX:
PHP: Insertion Lignes
Code : 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 <script type="text/javascript"> $(function(){ // Ajouter la ligne dans le tableau $("#submitnewgage").submit(function(){ $('.inputsubmitgage').removeClass('result'); titrejeux= $(this).find("input[name=titrejeux]").val(); gagejeux= $(this).find("input[name=gagejeux]").val(); titrejeuxInput = $(this).find("input[name=titrejeux]"); gagejeuxInput = $(this).find("input[name=gagejeux]"); form =$(this); url=$(this).attr("action"); $.post(url,{titrejeux:titrejeux,gagejeux:gagejeux},function(data){ if(data.erreur=="no"){ $('#bodytableau').append(data.retour1); $('tr:last').hide().fadeIn(2000); } else{ if(data.erreurVide){ $('#msgapparition').fadeIn(2500); } if(data.erreurPlein){ $('#msgapparition2').fadeIn(2500); } if(data.erreurSession){ } } },"json"); return false; }); }); </script> <script type="text/javascript"> $(function(){ // Supprimer la ligne $(".formcachejeux3").submit(function(){ idjeux= $(this).find("input[name=idjeux]").val(); numero= $(this).find("input[name=numero]").val(); idjeuxInput = $(this).find("input[name=idjeux]"); numeroInput = $(this).find("input[name=numero]"); form =$(this); url=$(this).attr("action"); $.post(url,{idjeux:idjeux,numero:numero},function(data){ if(data.erreur=="no"){ var x = data.retourid; $('.' + x ).hide(); } else{ if(data.erreurVide){ } } },"json"); return false; }); }); </script>
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
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 <?php session_start(); try { // Connexion BBD $query = $bdd->query("SELECT idjeux FROM membrejeux WHERE pseudo = '".$_SESSION['pseudo']."' && jeux ='".$_GET['numerojeux']."'"); $count = $query->rowCount(); $numjeux = $count + 1; $t = array(); if (empty($_POST['titrejeux']) OR empty($_POST['gagejeux'])) { $t["erreurVide"] = '<div class="error">Veuillez remplir tous les champs du formulaire</div>'; } elseif ($count >= 150) { $t["erreurPlein"] = '<div class="error">Trop de lignes dans le tableau</div>'; } elseif(empty($_SESSION['pseudo'])) { header('Location: index.php'); } else { $t["erreur"] = "no"; $req = $bdd->prepare('INSERT INTO membrejeux (titrejeux, gagejeux, pseudo, jeux, numero) VALUES (?, ?, ?, ?, ?)'); $req->execute(array($_POST['titrejeux'], $_POST['gagejeux'], $_SESSION['pseudo'], $_GET['numerojeux'], $numjeux)); $query2 = $bdd->query("SELECT idjeux, titrejeux, gagejeux, numero FROM membrejeux WHERE pseudo = '".$_SESSION['pseudo']."' && jeux = '".$_GET['numerojeux']."' && idjeux=LAST_INSERT_ID()"); while ($donnees2 = $query2->fetch()){ $t["retour1"] = '<tr class="'.$donnees2['idjeux'].'"> <td class="col1"> <form class="formcachejeuxmodif" action="modifgage_post.php?numerojeux=jeux1" method="post"> //Formulaire pour modifier ligne <input type="text" name="numero" value="'.$donnees2['numero'].'" /> </td> <td class="col2"><input type="text" name="titrejeux" value="'.$donnees2['titrejeux'].'" /></td> <td class="col3"><input type="text" name="gagejeux" value="'.$donnees2['gagejeux'].'" /></td> <input type="hidden" style="display:none;" name="idjeux" value="'.$donnees2['idjeux'].'" /> <td class="col4 '.$donnees2['idjeux'].'"> <input type="submit" value="modifier" /> </form> <form class="formcachejeux3" action="supprimgage_post.php?numerojeux=jeux1" method="post"> //Formulaire pour supprimer ligne <input type="hidden" name="idjeux" value="'.$donnees2['idjeux'].'" /> <input type="hidden" name="titrejeux" value="'.$donnees2['titrejeux'].'" /> <input type="hidden" name="gagejeux" value="'.$donnees2['gagejeux'].'" /> <input type="hidden" style="display:none;" name="numero" value="'.$donnees2['numero'].'" /> <input type="submit" value="supprimer" /> </form> </td> </tr>'; } } } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } echo json_encode ($t); ?>
PHP: Suppression Lignes
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37 <?php session_start(); try { // Connexion BBD $idjeux2 = $_POST['idjeux']; $numero2 = $_POST['numero']; $_SESSION['pseudo'] = $pseudo; $jeux2 = $_GET['numerojeux']; $t = array(); if (empty($_POST['idjeux']) OR empty($_POST['numero']) OR empty($_GET['numerojeux']) OR empty ($_SESSION['pseudo'])) { $t["erreurVide"] = '<div class="error">Veuillez remplir tous les champs du formulaire</div>'; } else{ $t["erreur"] = "no"; $t["retourid"] =$idjeux2; $req = $bdd->prepare("UPDATE membrejeux SET numero = numero-1 WHERE numero > :numerox && pseudo = :pseudo && jeux = :jeux"); $req->execute(array( ':numerox' => $numero2, ':jeux' => $jeux2, ':pseudo' => $pseudo, )); $query2 = $bdd->query("DELETE FROM membrejeux WHERE idjeux = '$idjeux2'"); } } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } echo json_encode ($t); ?>
Partager