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 :

[DOM] Interroger en temp réel mysql


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    829
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 829
    Par défaut [DOM] Interroger en temp réel mysql
    Bonjour à tous,

    Je voudrait savoir si c'est possible en temps réel d'interroger ma base mysql et d'afficher les informations récolter sur ma page web.

    En fait la personne arrive sur la page web et rentre le code client et je voudrait qu'en javascript il interroge ma base (mysql)en temps réel et récupérer les informations et les affiches dans ma page web (nom prénom numéros etc...).

    Je recherche un exemple un tuto pour m'aiguiller sur la bonne voix.

    Merci d'avance

    guigui69

  2. #2
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    C'est tout à fait possible et on appelle ca l'Ajax ^^

    Ya pas mal de tutoriels sur le site que tu peux consulter pour commencer, par exemple celui la ou celui la

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    829
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 829
    Par défaut
    Merci pour ces exemples.

    est quelqu'un aurait deja réaliser ceci et me donner une piste.

    Merci

    guigui69

  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
    Bonjour,
    Citation Envoyé par guigui69 Voir le message
    Merci pour ces exemples.

    est quelqu'un aurait deja réaliser ceci et me donner une piste.
    DoubleU vient de t'en donner 2.

    Y a qu'à suivre les liens

    A+

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    le tuto de siddh est très abordable ...

    en plus ce que tu cherches à faire est moins complexe.

    il te suffit d'ouvrir une insatnce d'axaj et de la faire pointer sur une page php qui fera la requete.
    cette page de traitement est indentique à une page de traitement de formulaire
    il suffit juste qu'elle retourne le resultat de la requete sous forme de texte
    voire utiliser un séparateur dans le texte si tu veux ensuite splitter les infos en javascript ...
    Coté javascript tu récupères le responseText..
    que tu splitte ou non ... et ensuite tu affiches les infos dasn un value ou un innerHMLT ....

    Voilà c'est tout
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    829
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 829
    Par défaut
    Merci

    Je vient te commencer a adapter le code pour ma page

    Page web
    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
    58
    59
    60
    61
    62
     
    <html>
    	<head>
    		<title></title>
    		<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();
    				// On défini ce qu'on va faire quand on aura la réponse
    				xhr.onreadystatechange = function(){
    					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    					if(xhr.readyState == 4 && xhr.status == 200){
    						leselect = xhr.responseText;
    						// On se sert de innerHTML pour rajouter les options a la liste
    						document.getElementById('information').innerHTML = leselect;
    					}
    				}
     
    				// Ici on va voir comment faire du post
    				xhr.open("POST","ajax.php",true);
    				// ne pas oublier ça pour le post
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    				// ne pas oublier de poster les arguments
    				// ici, l'id de l'auteur
    				idauteur = document.getElementById('code_client').value;
    				xhr.send(idauteur);
    			}
    		</script>
    	</head>
    	<body>
    <input type="text" name="code_client" id="code_client" value="" maxlength="11" onKeyUp=go()></td>
     
     
    <div id='information' style='display:inline'>
    ICI la réponse:
    </div>
    <?php
    print_r($_POST)
    ?>
    	</body>
    </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
     
    <?php
            
            if(isset($_POST["idauteur"])){
                    mysql_connect("localhost","root","*****");
                    mysql_select_db("qualite");
                    $res = mysql_query("SELECT nom_client, tel_client, fax_client, contact_client FROM client WHERE code_client=".$_POST["idauteur"]." ORDER BY nom_client");
                    while($row = mysql_fetch_assoc($res)){
                    ?>
    		ENCORE UN TEST
    <input type="text" name="nom_client" id="nom_client" value="<?echo $row["nom_client"];?>" maxlength="32"></td>
    <input type="text" name="contact_client" id= "contact_client"value="<?echo $row["contact_client"];?>" maxlength="32"></td>
    <input type="text" name="tel_client" id ="tel_client"value="<?echo $row["tel_client"];?>" maxlength="32"></td>
    <input type="text" name="fax_client" id="fax_client" value="<?echo $row["faxs_client"];?>" maxlength="32"></td>
    				<?php
                                    }
            }
     
    ?>
    Pourriez vous me dire si j'ai compris: (#1#)

    La personne tape le code client en question dans le champ input, après avoir taper le code ça appelle la fonction go(). En premier il regarde si notre navigateur est compatible si oui il configurer ,puis

    xhr.onreadystatechange... Je n'ai pas compris?? si quelqu'un pourrait m'éclairer?

    après on stocks les réponses dans un format text si toutes les données sont envoyées et que le serveur est ok.... Et après on insérer les données stocker dans la page web dans l'ID "information"

    On ouvre la connexion avec le serveur , avec la méthode "post", la page.
    On assigne un header pour que le serveur l'interprète correctement.
    Et en dernier on récupérer la valeur du code client qu'on rentre dans idauteur et on l'envoie avec xlr.send(idauteur)

    Que me manque-t-il- pour que mes champs s'affiche avec les informations de ma base?

    Car actuellement quand je tape le numéros d'un client les champs n'apparaissent pas ( par contre le "ICI la réponse" disparait).

    Quel sont mes erreurs?
    Pourrait-on mettre un certain temps (une pause) avant d'aller d'effectuer la fonction?


    Merci d'avance pour votre aide

    guigui69

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    829
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 829
    Par défaut
    Je pense avoir trouver mon erreur, mais j'ai encore quelque question

    voici mon code:
    ajax.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
    21
    22
     
    <?php
            
            if(isset($_POST["idauteur"])){
                    mysql_connect("localhost","root","*******");
                    mysql_select_db("qualite");
                    $test= $_POST["idauteur"];
                    $res = mysql_query("SELECT nom_client, tel_client, fax_client, contact_client FROM client WHERE code_client='$test' ORDER BY nom_client");
                    while($row = mysql_fetch_assoc($res)){
                    ?>
    		<br>
    		ENCORE UN TEST
    <input type="text" name="nom_client" id="nom_client" value="<?echo $row["nom_client"];?>" maxlength="32"></td>
    <input type="text" name="contact_client" id= "contact_client"value="<?echo $row["contact_client"];?>" maxlength="32"></td>
    <input type="text" name="tel_client" id ="tel_client"value="<?echo $row["tel_client"];?>" maxlength="32"></td>
    <input type="text" name="fax_client" id="fax_client" value="<?echo $row["faxs_client"];?>" maxlength="32"></td>
    <br>			
    			<?php
                                    }
            }
     
    ?>
    mapage.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
    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
    58
    59
    60
    61
    62
    63
    64
     
    <html>
    	<head>
    		<title></title>
    		<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();
    				// On défini ce qu'on va faire quand on aura la réponse
    				xhr.onreadystatechange = function(){
    					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    					if(xhr.readyState == 4 && xhr.status == 200){
    						leselect = xhr.responseText;
    						// On se sert de innerHTML pour rajouter les options a la liste
    						document.getElementById('information').innerHTML = leselect;
     
    					}
    				}
     
    				// Ici on va voir comment faire du post
    				xhr.open("POST","ajax.php",true);
    				// ne pas oublier ça pour le post
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    				// ne pas oublier de poster les arguments
    				// ici, l'id de l'auteur
    				idauteur = document.getElementById('code_client').value;
    				alert(idauteur);
    				xhr.send("idauteur="+idauteur);
    			}
    		</script>
    	</head>
    	<body>
    <input type="text" name="code_client" id="code_client" value="" maxlength="11" onKeyUp="go()"></td>
     
     
    <div id='information' style='display:inline'>
    ICI la réponse:
    </div>
    <?php
    print_r($_POST)
    ?>
    	</body>
    </html>
    Pour moi sa a l'air de marcher, mais pourriez-vous regarder mon code pour voir si il y a des erreurs a eviter.

    J'ai remarquer aussi qu'il envoie 2 requêtes POST, je pense c'est le fait que j'ai mis onkeyup. Peut-on mettre en place une pause de 1 ou 2 secondes (pour être sur que la personne a taper est taper le code client entier)?

    Merci d'avance

    guigui69

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/03/2013, 10h50
  2. observer le dom en temps réel
    Par CaviarNAS dans le forum jQuery
    Réponses: 10
    Dernier message: 19/11/2009, 12h05
  3. Intéraction en temps réel avec PHP/MySQL?
    Par Amallric dans le forum Débuter
    Réponses: 7
    Dernier message: 17/07/2008, 13h33
  4. Réponses: 2
    Dernier message: 13/10/2007, 11h36
  5. [AJAX] Comment faire => resultat de mysql en affichage temps réel
    Par noellepere dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/09/2007, 09h55

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