Bonjour à toutes et tous,
Voilà mon soucis, je suis en train de créer une messagerie interne au jeu et sur la boite de réception, le client aura la possibilité de choisir entre supprimer les message cochés ou les archiver. Naturellement tout ça est sur le même "form". Mon soucis, diriger vers le bon script.
Je n'ai donc pas mis d'action à mon formulaire puisque je veux le définir dans une function button1() et function button2() comme ceci :
Pour mieux comprendre la partie html :
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 $(document).ready(function(){ // Traitement des formulaires messagerie function button1(a){ $('.loading').hide(); $.ajax({ type:"POST", url:"includes/functions/supprimer.php", data:"id="+a, beforeSend: function(){ $('.loading').show(); $('#supprimer').attr('value', "Traitement..."); }, success:function(a){ $('.loading').hide(); $('#supprimer').attr('value', "Supprimer"); if(data.message){ $('.infos').addClass(data.success).html(data.message).fadeIn(600); setTimeout(function(){ $('.infos').fadeOut(600); location.reload(); }, 4000); } } }); return false; } function button2(a){ $.ajax({ type:"POST", url:"includes/functions/archiver.php", data:"id="+a, beforeSend: function(){ $('.loading').show(); $('#archiver').attr('value', "Traitement..."); }, success:function(a){ $('.loading').hide(); $('#archiver').attr('value', "Archiver"); if(data.message){ $('.infos').addClass(data.success).html(data.message).fadeIn(600); setTimeout(function(){ $('.infos').fadeOut(600); location.reload(); }, 4000); } } }); retun false; } });
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 <form name="messager" method="post"> <div class="messagesTop"> <div class="messCol1"><img src="view/img/lu.png" alt="lu.png"/></div> <div class="messCol2">Expéditeur</div> <div class="messCol3">Sujet</div> <div class="messCol4">Reçu le</div> <div class="messCol5"><img src="view/img/suppr.png" alt="suppr.png"/></div> </div> <?php include '../includes/config/config.php'; $q=$db->prepare('SELECT * FROM messagerie WHERE to_id = ? AND archives = "0" ORDER BY timstamp DESC'); $q->execute(array($_SESSION['id'])); while($m = $q->fetch()){ $nb = $q->rowCount(); if($nb > 0) { ?> <div class="messagesCont"> <div class="messCol1"><?php if($m['lu'] != 0){ ?><img src="view/img/lu2.png" alt="lu2.png"/><?php }else {?><img src="view/img/lu.png" alt="lu.png"/><?php } ?></div> <div class="messCol2"><?php echo htmlentities($m['from_name']); ?></div> <div class="messCol3"><span class="link"><a href="readmessage.php?id=<?php echo htmlentities($m['id']); ?>"><?php echo htmlentities($m['sujet']); ?></a></span></div> <div class="messCol4"><?php echo htmlentities(date('d/m/Y', $m['timstamp'])); ?></div> <div class="messCol5"><input type="checkbox" name="list[]" value="<?php echo htmlentities($m['id']); ?>" /></div> </div> <?php } } if($nb == 0) { echo '<div class="messCol6">Auncun message</div>'; } else {?> <div class="mess"> <input type="submit" id="supprimer" onsubmit="button1(<?php echo htmlentities($m['id']); ?>);" class="bt_mess" value="Supprimer" /> <input type="submit" id="archiver" onsubmit="button2(<?php echo htmlentities($m['id']); ?>);" class="bt_mess" value="Archiver" /> </div> <?php } ?> </form> <script src="includes/ajax/traitemessages.js"></script>
Il ne devrait pas y avoir de rechargement mais pourtant il y en a... aller comprendre pourquoi. De plus, il n'archive pas ni ne supprime les messages alors que les script php de traitement eux, tous seuls, fonctionnent parfaitement et exécute bien les update et delete derrière.
J'ai tenter de remplacer submit par onclick mais il me dit que button2 not defined et en développant il me dit : onclick.
Pourtant à la fin du code html, j'appelle bien le fichier traitemessages.js ou y a mes deux fonctions... et le chemin est bon je l'ai déjà vérifier...
Je ne sais plus comment faire là après avoir tenté mainte et maintes variantes je sais plus comment obtenir une réponse fonctionnelle sans chargement de page.
Merci d'avance pour vos lumières![]()
Partager