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

Java EE Discussion :

affichage en permanence d'un champ de la base de données dans un label


Sujet :

Java EE

  1. #1
    Membre éclairé
    Femme Profil pro
    Etudiante
    Inscrit en
    Avril 2012
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Avril 2012
    Messages : 203
    Par défaut affichage en permanence d'un champ de la base de données dans un label
    Bonjour,

    je veux afficher le résultat d'un Select d'un champ de la base de donnée dans un label (html) d'une manière permanente

    c-à-d : afficher la première valeur , écraser la première et afficher la deuxième valeur et ainsi de suite , jusqu'à la dernière ligne dans la base de donnée sans rafraîchir la page , voilà un bout du code qui affiche le tout :/

    merci d'avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <table cellspacing="2" width="600px" align="center">
        <tr>
            <th><u>Valeurs actuelles :</u></th>
    	<th align="left">Température :</th>
    <%
    cnx = new Connexion("serredb");
    cnx.lire("SELECT * FROM `capteur`");
    while(cnx.getrs().next(){
        String temp = cnx.getrs().getString(4);
    %>
            <td><label id="temp" for="temp"><%=temp%></label></td>
    <%} %>
        </tr>

  2. #2
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Par défaut
    Bonjour

    Pour faire ceci, tu dois te tourner vers AJAX, meilleurs moyen d'avoir des données actualisées sans recharger la page.


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  3. #3
    Membre éclairé
    Femme Profil pro
    Etudiante
    Inscrit en
    Avril 2012
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Avril 2012
    Messages : 203
    Par défaut
    Merci roro pour ta proposition, en fait je tavaille avec la technologie J2EE tout en utilisant les JSP et les Servlets , comment je peux utiliser AJAX dans ce cas sachant que je connais rien sur l'AJAX ?

    est ce que tu peux me proposer un tutoriel sur l'AJAX à suivre ?

  4. #4
    Membre éclairé
    Femme Profil pro
    Etudiante
    Inscrit en
    Avril 2012
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Avril 2012
    Messages : 203
    Par défaut
    est ce que je peux me servir de Timer() pour résoudre le problème?

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Quelle drôle d'idée de boucler pour récupérer le dernier enregistrement
    A ta place, je ferais une requête en la classant par ordre décroissant et je prendrais juste le premier enregistrement.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre éclairé
    Femme Profil pro
    Etudiante
    Inscrit en
    Avril 2012
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Avril 2012
    Messages : 203
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Quelle drôle d'idée de boucler pour récupérer le dernier enregistrement
    A ta place, je ferais une requête en la classant par ordre décroissant et je prendrais juste le premier enregistrement.
    en faite , l'objet de l'application et de lire d'un fichier qui contient des informations sur la météo (c'est du temps réel), donc je dois savoir les informations climatique à chaque laps de temps .

    ce n'est pas drôle du tout

  7. #7
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Je pense plutôt que j'ai mal compris ton besoin, il m'avait semblé que tu voulais récupérer la dernière valeur d'une requête...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    c-à-d : afficher la première valeur , écraser la première et afficher la  deuxième valeur et ainsi de suite , jusqu'à la dernière ligne dans la  base de donnée sans rafraîchir la page , voilà un bout du code qui  affiche le tout
    Peux-tu être plus précise dans l'expression de ton besoin ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre éclairé
    Femme Profil pro
    Etudiante
    Inscrit en
    Avril 2012
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Avril 2012
    Messages : 203
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Peux-tu être plus précise dans l'expression de ton besoin ?

    je m'explique :

    je travaille sur une application J2EE dont l'objectif est de superviser les paramètres climatiques des sous serres ,ces paramètres climatiques sont par exemple l'humidité et la température , ils sont stockés automatiquement dans la base de donnée à partir du fichier généré par le capteur de la serre .

    mon problème consiste à sélectionner les valeurs de ces paramètres de la base de donnée, l'une après l'autre, dans une page JSP , une par une mais d'une manière à ce que la première valeur s'affiche puis la deuxième s'affiche au lieu de la première et ainsi de suite ; dont le but d'avoir l'impression que le paramètre change en temps réel

    j'espère que c'est plus claire maintenant

  9. #9
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Donc, en résumé, tu souhaites récupérer la dernière valeur pour chaque paramètre et l'afficher sans quitter la page (si je me trompe, tu me corriges)

    Si c'est cela, effectivement, il va falloir te tourner vers Ajax pour envoyer à intervalle régulier la requête d'extraction et modifier l'affichage.
    Ce n'est pas bien compliqué, il suffit de passer par une servlet qui se chargera d'exécuter la requête sql côté serveur et au retour, modifier la zone d'affichage correspondante (je te conseille d'utiliser jQuery).
    Pour ce qui est de l'optimisation, ça va dépendre un peu du temps d'exécution de tes requêtes. Soit tu fais une servlet qui récupère tous les paramètres, soit tu prévois un paramètre dans l'url qui te permettra de désigné le paramètre à extraire.
    Pour ce qui est de la requête sql proprement dite, je te conseille ma requête inversée, à moins que tu n'ais une colonne timestamp qui te donne l'heure d'extraction de la valeur, auquel cas, tu pourras t'en servir pour extraire la(les) suivante(s)... toujours en inversé si tu ne veux vraiment que la dernière (ce qu'il me semble)

    Une solution plus simple à mettre en œuvre mais largement moins bonne consiste à inclure une iFrame dans ta page pour afficher et rappeler l'url à intervalle régulier, tu pourrais même te passer entièrement de javascript en utilisant la meta refresh.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <meta http-equiv="refresh" content="30;URL=./chemin/page.jsp"/>
    Bien sûr, je te conseille d'utiliser la première méthode avec Ajax
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre éclairé
    Femme Profil pro
    Etudiante
    Inscrit en
    Avril 2012
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Avril 2012
    Messages : 203
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Donc, en résumé, tu souhaites récupérer la dernière valeur pour chaque paramètre et l'afficher sans quitter la page (si je me trompe, tu me corriges)
    le but ce n'est pas récupérer la dernière valeur mais d’itérer sur tout les valeur une par une (tout en les affichant au fur et à mesure)
    c'est un peu l'effet de l'horloge en temps réel

    si vous avez un exemple du code n’hésiter pas à le proposer , parce que j'ai vraiment besoin de votre aide et merci d'avance

  11. #11
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Alors un timer javascript devrait suffire:

    1- acquisition de données: tu remplis un gros tableau javascript avec les données (généré directement via le html, ou récupéré via un appel en ajax, c'est égal c'est toi qui vois)
    2- lancement d'un timer (avec la fonction setTimeout de javascript)
    3- à chaque intervalle de ton choix, tu te déplaces dans le tableau des données et tu update le label (span/p/div ou autres) de rendu


  12. #12
    Membre éclairé
    Femme Profil pro
    Etudiante
    Inscrit en
    Avril 2012
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Avril 2012
    Messages : 203
    Par défaut
    Citation Envoyé par Pill_S Voir le message
    Alors un timer javascript devrait suffire:
    voilà ce que j'ai pu faire
    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
     
    <%@ page import="dao.Connexion"%>
    <%@page import="java.sql.*"%>
     
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    <script type="text/javascript">
     
    function essai(){
    	var i ;
    	var myvar = new Array();
    	while(i >= 0){
    	myvar[i] = document.getElemetById("temp").value;
    	}
    	var dmc_setTimeout= setTimeout(essai,1000);
    }
     
    </script>
     
    </head>
    <body>
    <%!Connexion cn ; ResultSet rs; String temp;  %>
    <%
       cn = new Connexion("serredb");
      rs = cn.lire("SELECT * FROM `capteur1`");  
     
    	while(cn.getrs().next())
    	  {
    	     temp = cn.getrs().getString(4);
    %>
    			<input type="text" id="temp" value="<%=temp %>" readonly onload="javascript:essai();"></input>
    <% 
    	     System.out.println(temp);
    	  }
    %>
     
     
    </body>
    </html>
    mais ça affiche tout les valeurs , chacune dans un input

  13. #13
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Essaie un truc comme ça plutôt:

    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
     
    <%@ page import="dao.Connexion"%>
    <%@page import="java.sql.*"%>
     
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    <script type="text/javascript">
    var data = new Array();
    <%!Connexion cn ; ResultSet rs; String temp;  %>
    <%
     
     
       cn = new Connexion("serredb");
      rs = cn.lire("SELECT * FROM `capteur1`");  
     
    	while(cn.getrs().next())
    	  {
    	     temp = cn.getrs().getString(4);
    %>
                       data.push('<%=temp%>');
    <% 
    	     System.out.println(temp);
    	  }
    %>
     
    var index = 0; 
    var timeout = setInterval(function() {
        // avec jquery
        $('#data').text(data[index++]);
     
        // ou sans jquery
        //document.getElementById('data').innerText = data[index++];
     
        if(index>=data.length) index = 0;
    }, 1000);
     
     </script>
     
    <span id="data">no data yet!</span>
    </body>
    </html>
    Bon avec un peu de cleanup du code aussi, faire du requêtage sql dans les pages de présentation c'est euh... pas top


  14. #14
    Membre éclairé
    Femme Profil pro
    Etudiante
    Inscrit en
    Avril 2012
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Avril 2012
    Messages : 203
    Par défaut
    Merci beaucou Pill_S , tu m'a sauvé la vie

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 18/06/2010, 12h26
  2. crypter un champs de la base de donnée
    Par renofx1 dans le forum Administration
    Réponses: 4
    Dernier message: 06/01/2006, 15h53
  3. Réponses: 9
    Dernier message: 04/12/2005, 19h57
  4. longueur des champs de ma base de données
    Par mictif dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 24/06/2005, 20h19
  5. [MFC] Champs d'une base de donnée
    Par MadChris dans le forum MFC
    Réponses: 5
    Dernier message: 24/03/2004, 17h21

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