Bonjour,
toujours dans mon apprentissage de Jquery, je rencontre une autre difficulté.
J'ai tout un script qui fonctionne très bien:
- Je clique sur un lien qui m'affiche un formulaire en Jquery
- Lorsque je valide le formulaire la BDD est alimentée via une page PHP appelée en Post et la ligne est ajoutée/ modifiee/ supprimee par jquery.
Ce script fonctionne bien.
Le souci est qu'une fois que j'ai executé ce script une fois, des que je clique à nouveau sur mon lien, plus rien ne se passe ! Le formulaire ne s'affiche pas, et je n'ai aucune erreur JS.
Voici le code utilisé:
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 la structure du tableau contenant le lien: $reqAfficheContact = "SELECT * FROM contact_MR WHERE id_MR = '".$id_MR."';"; $resultAfficheContact = db_query($reqAfficheContact); echo "<div class='lignes_contact'>"; echo "<table id='table_contacts' cellpadding=0 cellspacing=0 class='contact'>"; while ($lignesContacts=mysql_fetch_assoc($resultAfficheContact)){ echo "<tr class='contact".$lignesContacts['id_contact_MR']."'>"; echo "<td class='titre_souligne'>".MajMin($lignesContacts['titre_contact_MR'])."</td>"; echo "<td><a class='supprimer' rel='".$lignesContacts['id_contact_MR']."' style='cursor:pointer;'><img src='images/icone_suppr_contact.gif' border='0'></a></td>"; echo "<td><a class='modifier' rel='".$lignesContacts['id_contact_MR']."' style='cursor:pointer;'><img src='images/icone_modifier_contact.gif' border='0'></a></td>"; echo "</tr>"; } echo "</table>
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 Le traitement jquery de mon lien "modifier": $("a.modifier").click(function(e){ var id=$(this).attr("rel"); var resultSelect = $.ajax({ type:"POST", url: "modif_contact.php", data: "id_contact_MR="+id+"&TypeReq=select", async: true, success: function(resultSelect,etat){ var chaine = resultSelect; var vecteur = chaine.split("***"); //Le fichier modif_contact.php me renvoie une chaine de caracteres que je traite avec la fonction split(). Le séparateur choisi est *** $("#id_contact_MR").val(vecteur[0]); $("#titre_contact_MR").val(vecteur[1]); } }); if ($("#contactModifForm").is(":hidden")){ $("#contactModifForm").fadeIn(500); } else{ $("#contactModifForm").fadeOut(500); } });
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 Le formulaire HTML: <div id="contactModifForm"> <form method="post" name="form_modif_contact" id="form_modif_contact" action="modif_contact.php" > <fieldset> <table class="modif_contact"> <tr> <td> <input name="id_contact_MR" type="hidden" id="id_contact_MR"> <input name="titre_m_contact_MR" type="text" class="textForm" id="titre_m_contact_MR" size="30" maxlength="30" width="50px"> </td> </tr> </table> <input type="button" id="validModif" value="Modifier le contact"/> <span id="messageModifSent">Le contact a bien été modifié !</span> </fieldset> </form> </div>
Voila, je pense avoir mis tout ce qui est utile.
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 Et enfin le fichier appelé par jquery: modif_contact.php $titre_m_contact_MR= $_POST['titre_m_contact_MR']; $id_contact_MR = $_POST['id_contact_MR']; $TypeReq = $_POST['TypeReq']; if ($TypeReq=='select'){ $reqSelectContact = "SELECT * FROM contact_MR "; $resultSelectContact = db_query($reqSelectContact); $afficheSelectContact = mysql_fetch_assoc($resultSelectContact); $titre = $afficheSelectContact["titre_contact_MR"]; $id = $afficheSelectContact["id_contact_MR"]; echo $id_contact_MR."***".$titre; //Ce que recupere Jquery } elseif ($TypeReq=='update'){ $reqModifContact = "UPDATE contact_MR SET titre_contact_MR = '".$titre_m_contact_MR."' WHERE id_contact_MR = '".$id_contact_MR."';"; $resultModif = db_query($reqModifContact); } /////Affichage dernier update $reqAfficheContact = "SELECT * FROM contact_MR WHERE id_contact_MR = '".$id_contact_MR."';"; $resultAfficheContact = db_query($reqAfficheContact); while ($lignesContacts=mysql_fetch_assoc($resultAfficheContact)){ echo $lignesContacts['id_contact_MR']."***<tr class='contact".$lignesContacts['id_contact_MR']."'> <td class='titre_souligne'>".MajMin($lignesContacts['titre_contact_MR'])."</td>"; echo "<td><a class='supprimer' rel='".$lignesContacts['id_contact_MR']."'style='cursor:pointer;'><img src='images/icone_suppr_contact.gif' border=0></a></td>"; echo "<td><a class='modifier' rel='".$lignesContacts['id_contact_MR']."' style='cursor:pointer;'><img src='images/icone_modifier_contact.gif' border=0></a></td></tr>\n"; }
donc je repete mon probleme:
Tout ça fonctionne tres bien... UNE FOIS !
Des que le script a tourné et m'a modifié le contact(je prends l'exemple de la modif ici), le lien "modifier" est inactif ! Aucune erreur JS et le formulaire ne s'affiche pas.
Merci de me donner un coup de main si vous avez une idée.
Mica
Partager