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

JavaScript Discussion :

[AJAX] J'aimerais faire plus d'une action avec ajax (afin d'éviter de réécrire du code)


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut [AJAX] J'aimerais faire plus d'une action avec ajax (afin d'éviter de réécrire du code)
    Salut tout le monde,

    J'ai un formulaire qui contient deux zones de textes.

    La première pour le matricule
    La seconde pour le login.

    J'ai un bouton qui vérifie la concordance entre ces deux informations.

    Si OK, j'ajoute une image (V Vert) dans une cellule de mon tableau
    Si pas OK. j'ajoute une image (croix rouge) dans la cellule (qui contient une div).

    Jusque là, je maîtrise, tout fonctionne parfaitement.

    Je devrais en plus de cela mettre dans les div de deux zones de textes du code pour activer le bouton.

    Je me demandais si il était possible d'activer mes deux zones de textes en même temps (c'est à dire retirer enable = enabled).

    Voici mon code :

    Clic sur le bouton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td><input name="button" type="button" value="(1) Vérifier la concordance entre le matricule et le login" onclick="check_Mat_Log(document.getElementById('txtmatricule').value,document.getElementById('txtlogin').value)" /></td>
    appelle cette fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function check_Mat_Log(Matricule,Login)
    dont voici le code :

    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
    function getXhr()
    	{
        	var xhr = null; 
    		if(window.XMLHttpRequest) // Firefox et autres
    		xhr = new XMLHttpRequest(); 
    		else if(window.ActiveXObject){ // Internet Explorer 
    		   try {
    				xhr = new ActiveXObject("Msxml2.XMLHTTP");
    			    } catch (e) {
    			    xhr = new ActiveXObject("Microsoft.XMLHTTP");
    			    }
    			}
    			else { // XMLHttpRequest non supporté par le navigateur 
    			   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    			   xhr = false; 
    			} 
                  return xhr;
    	}
     
    function check_Mat_Log(Matricule,Login)
    {
    	alert(Matricule);
    	alert(Login);
    	//ici, on utlise de l'ajax sans écrire quoi que ce soit dans la page, on ne fait qu'appeler du php sans faire de refresh 
     		var xhr = getXhr();
    		xhr.onreadystatechange = function()
    		{
    			if(xhr.readyState == 4 && xhr.status == 200)
    			{
    				leretour = xhr.responseText;
    				//var textExcel = "<td width=\"165\"><div id=\"div_excel_export\"><a href=\"\" class=\"navText\"> Excel : Exporter (cours clôturé !)</a></div></td>";
    				//alert(leretour);
    				//dans la cellule du tableau (td) je mets soit la flèche verte pour dire que le matricule et le login correspondent, soit al croix rouge pour dire que ça ne correspond pas.
    				document.getElementById('resultat_mat_login').innerHTML=leretour;
    				//Je mets en enable les deux zones de texte pour le mot de passe
    				document.getElementById('').innerHTML = ;
     
    				//peut-on renvoyer deux textes en AJAX ?
    				//document.getElementById('div_excel_export').innerHTML=textExcel;
    			}
    		}
     
     
    	//alert(categorie);
     		//j'appelle la page Update_Cloture.php pour mettre a jour la table cours (cloture)
    		xhr.open("POST","../Scripts/Utilisateur/login/Check_matricule_login.php",true);
    		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    		xhr.send("matricule="+Matricule+"&login="+Login);
     
     
     
    }
    et voici le code PHP :

    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
    <?php 
    include('../../connexion.php');
    $req = "SELECT professeurs.MATRICULE_PROF, professeurs.LOGIN2 FROM professeurs WHERE MATRICULE_PROF = '".$_POST['matricule']."' AND LOGIN2 = '".$_POST['login']."' ";
     
    $query = mysql_query($req);
     
    $nombre = mysql_num_rows($query);
     
    //si il y a au moins un résultat, j'affiche la flèche verte
     
    if ($nombre > 0)
    {
    	echo '<img src="../Images/v_vert.JPG" alt="Le matricule et le login correspondent" />';
     
    }
    else
    {
    	echo '<img src="../Images/croix_rouge.jpg" alt="Le matricule et le login ne correspondent pas !" />';
    }
    ?>
    Le nom des ID de mes zones de textes sont :

    txtmdp et txtmdp2

    Merci d'avance pour l'aide.

    beegees

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Citation Envoyé par beegees Voir le message
    Je me demandais si il était possible d'activer mes deux zones de textes en même temps (c'est à dire retirer enable = enabled).
    ben tu n'as qu'à essayer, non ?

    Suffit d'ajouter les instructions correspondantes dans check_Mat_Log()

    A+

  3. #3
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Bonjour E.Bzz,

    Merci pour ta réponse.

    Suffit d'ajouter les instructions correspondantes dans check_Mat_Log()
    Je dois quand même checker la réponse de PHP car si la ligne est trouvé dans la base de données, alors je change l'id du boutoun par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td><input name="txtmdp" type="password" id="txtmdp"/></td>
    autrement, je n'y touche pas.

    J'ai essayé d'ajouter ceci dans la fonction check_Mat_Log():

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if(leretour == "<img src="../Images/v_vert.JPG" alt="Le matricule et le login correspondent" />")
    				{
    					alert("ok");
    				}
    				else
    				{
    					alert("pas ok");
    				}
    mais sans succès.

    As-tu une idée ?

    Merci encore pour ton aide.

    beegees

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par beegees Voir le message
    As-tu une idée ?
    Oui, inspirée par une poule de mes amies :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(leretour == "<img src='../Images/v_vert.JPG' alt='Le matricule et le login correspondent' />")


    Ceci dit, mieux vaudrait renvoyer (et interpréter) un simple booléen (0/1) qu'un texte représentant un tag HTML

    A+

  5. #5
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Oui, inspirée par une poule de mes amies :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(leretour == "<img src='../Images/v_vert.JPG' alt='Le matricule et le login correspondent' />")




    A+
    Re,

    Merci pour ton idée, elle a fonctionnée correctement.

    Ceci dit, mieux vaudrait renvoyer (et interpréter) un simple booléen (0/1) qu'un texte représentant un tag HTML
    Renvoyer donc true ou false et par rapport à ça mettre un texte ou un autre dans le innerHTML ?

    J'apprends l'AJAX, je suis donc preneur de toute suggestions, surtout quand elle proviennent de pro.

    Merci encore.

    beegees

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par beegees Voir le message
    Renvoyer donc true ou false et par rapport à ça mettre un texte ou un autre dans le innerHTML ?
    Oui, même encore plus simple : "0" ou "1"

    A+

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

Discussions similaires

  1. Accès à une action grâce à AJAX
    Par alex59700 dans le forum JSF
    Réponses: 2
    Dernier message: 21/12/2011, 11h46
  2. [ZF 1.10] faire appel d'une action
    Par oracle12 dans le forum MVC
    Réponses: 1
    Dernier message: 23/06/2011, 17h07
  3. Réponses: 12
    Dernier message: 16/09/2010, 19h17
  4. comment faire pour stopper une action en cours ?
    Par zabdaniel dans le forum C#
    Réponses: 1
    Dernier message: 15/01/2009, 16h07
  5. Réponses: 38
    Dernier message: 22/03/2007, 16h15

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