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

AJAX Discussion :

[AJAX] Besoin d'un petit script ajax qui verifie une valeur en bdd


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3
    Par défaut [AJAX] Besoin d'un petit script ajax qui verifie une valeur en bdd
    Bonjour,
    je suis débutant en ajax avec très peu de connaissance javascript

    j'ai une table mysql "ma_table" avec un champ "id" value=1 et un champ "status" value=0
    j'aimerai savoir si quelqu'un peut m'écrire un petit script ajax qui vérifie en permanence si la valeur du champ statut est passé à 1
    et dans ce cas affiche le message "Le champ à changer" sans actualiser la page

    J'ai essayer de chercher sur le forum et ailleurs mais n'ayant aucune connaissance javascript, je n'ai pas su trouver ne sachant pas vraiment quel critère utiliser
    Je vous remercie d'avance

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour et Bienvenue sur Developpez .

    Je te conseille de lire ce tutoriel. Dans le onreadystatechange, tu testes si le champ est à un 1 à 0 et relance la requête si le champ n'est pas encore modifié.

    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function go(){
    		var xhr = getXhr()
    		xhr.onreadystatechange = function(){
    		if(xhr.readyState == 4 && xhr.status == 200){
    			if("0"==xhr.responseText){
    				go();
    			}else{
    				 //tu mets à jour la page.
    			}
    		     }
    		}
    		 xhr.open("GET","ajax.php",true);
    		 xhr.send(null);
    	 }
    A+.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3
    Par défaut
    ok merci beaucoup^^
    vais essayer cela

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3
    Par défaut
    Je reviens vers vous
    J'ai essayé d'appliquer ce qui a été dit plus haut
    mais ça ne fonctionne pas (je suppose que je suis vraiment pas doué en javascript/ajax

    Voici le contenu de ma page test.php (la page ou se trouve le bouton qui declenche la verification et qui doit afficher:" le chiffre a changé" dans un div lorsque champ1 passera de la valeur 0 à la valeur 1).

    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
    <html>
    <head><script type='text/JavaScript'>
     
    	 		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
    			}
     
    			/**
    			* Méthode qui sera appelée sur le click du bouton
    			*/
    			function go(){
    		        var xhr = getXhr()
    		        xhr.onreadystatechange = function(){
    		        if(xhr.readyState == 4 && xhr.status == 200){
    			if("0"==xhr.responseText){
    				go();
    			}else{
    			document.getElementById('Info').innerHTML =  = 'le chiffre a changé';
     
     
    			}
    		        }
    	                }
    		        xhr.open("GET","ajax.php",true);
    		        xhr.send(null);
    	                }
     
    </script>
    </head>
    <body>
    <form method="post" action="test.php">
    <p><input type="button" value="verifier" onclick="go()" /></p>
    </form>
    <div id="Info"></div>
    </body>
    </html>
    et ici le contenu de ma page ajax.php:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php
     include("connect.php");
     
    //champ 1 contient la valeur 0
    $query= mysql_query("select champ1 from table where id='1' limit 1");
       $g=mysql_fetch_array($query);
       echo $g['champ1'];
     
     ?>
    connect.php me permet comme son nom l'indique de me connecter à la bdd

    lorsque je modifie la valeur champ 1 rien ne se passe sur la page test (qui devrait afficher alors de maniere asynchrone "le chiffre à changé")
    vous pourriez me corriger?

    edit:

    j'ai trouvé mon erreur

    document.getElementById('Info').innerHTML = = 'le chiffre a changé';

    au lieu de
    document.getElementById('Info').innerHTML = 'le chiffre a changé';

    merci pour tout

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 22/04/2013, 14h10
  2. [AJAX] [PHP] Srcipt qui retourne une valeur
    Par Gregory.M dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 17/02/2008, 13h58
  3. [AJAX] acces refusé sur execution script ajax avec IE
    Par avogadro dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 25/01/2007, 11h34
  4. [AJAX] Répétition d'appel de script ajax dans un même formulaire
    Par lodan dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 20/09/2006, 17h47
  5. [AJAX] Echainement en cascade de script ajax
    Par lodan dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 11/09/2006, 20h30

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