IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Jquery: la fonction ne s'execute qu'une fois


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 41
    Par défaut Jquery: la fonction ne s'execute qu'une fois
    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 &eacute;t&eacute; modifi&eacute; !</span>
                		</fieldset>
                   </form>            
            </div>



    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";
    }
    Voila, je pense avoir mis tout ce qui est utile.
    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

  2. #2
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Hello

    A mon avis, le code du click est bien re-executé mais tu as l'impression qu'il se passe rien
    Firebug pourrait aider à debugger

  3. #3
    Membre averti
    Inscrit en
    Février 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 41
    Par défaut
    Citation Envoyé par Gruik Voir le message
    Hello

    A mon avis, le code du click est bien re-executé mais tu as l'impression qu'il se passe rien
    Firebug pourrait aider à debugger
    Malheureusement non, firebug ne m'aide pas.
    Lorsque le script fonctionne, dans reseau/XHR j'ai une ligne avec tous les parametres intitulee "POST modif_contact.php" qui s'affiche.
    Lorsque ça ne marche pas... et ben cette ligne la ne s'affiche pas

  4. #4
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Donc tu cliques et tu ne vois pas la requete ajax passer?
    Et il n'y a pas d'erreur javascript?

  5. #5
    Membre averti
    Inscrit en
    Février 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 41
    Par défaut
    Citation Envoyé par Gruik Voir le message
    Donc tu cliques et tu ne vois pas la requete ajax passer?
    Et il n'y a pas d'erreur javascript?
    tout a fait

  6. #6
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Ok,

    Bein je parlais de Firebug pour debugger, mais en plaçant des points d'arrêt et tout ça
    Car là je vois pas

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonction javascript qui marche qu'une fois sous Firefox
    Par ns_deux dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/08/2006, 10h38
  2. Réponses: 2
    Dernier message: 16/09/2005, 18h03
  3. [C#] Execution d'une fonction en code behind
    Par elendila dans le forum ASP.NET
    Réponses: 21
    Dernier message: 22/08/2005, 15h06
  4. Réponses: 3
    Dernier message: 17/06/2004, 16h32
  5. Execution d'une fonction lors de l'appui sur CTRL+ALT+I
    Par cyberlewis dans le forum Windows
    Réponses: 4
    Dernier message: 17/03/2004, 01h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo