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 :

Lancement d'un script pour mettre à jour un tableau HTML


Sujet :

JavaScript

  1. #1
    Membre habitué Avatar de Goltar
    Homme Profil pro
    Eternel Etudiant Curieux
    Inscrit en
    Mars 2011
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Eternel Etudiant Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2011
    Messages : 216
    Points : 137
    Points
    137
    Par défaut Lancement d'un script pour mettre à jour un tableau HTML
    Bonjour à tous,
    Votre aide serait bienvenue !
    Dans un page ASP VBScript, j'ai un tableau HTML dont certaine cellule sont nommée:
    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
    <table width="500" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td id="GES_A">&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td id="DPE_A">&nbsp;</td>
      </tr>
     <tr>
        <td id="GES_B">&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td id="DPE_B">&nbsp;</td>
      </tr>
      <tr>
        <td id="GES_C">&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td id="DPE_C">&nbsp;</td>
      </tr>
      <tr>
        <td id="GES_D">&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td id="DPE_D">&nbsp;</td>
      </tr>
    </table>
    J'aimerais via une fonction Javascript, récupérer certaines valeurs d'un Recordset et suivant ces valeurs mettre à jour le tableau.
    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
    function AdaptTableau (){
    	var GesLet, GesVal, DpeLet, DpeVal, CelluleGes, CelluleDpe, CellGesRacine, CellDpeRacine;
    	    CellGesRacine = "GES_";
    		CellDpeRacine = "DPE_";
    		GesLet = <%=(immodetail.Fields.Item("GES").Value)%>;
    		GesVal = <%=(immodetail.Fields.Item("GESNb").Value)%>;
    		DpeLet = <%=(immodetail.Fields.Item("DFE").Value)%>;
    		DpeVal = <%=(immodetail.Fields.Item("DFENb").Value)%>;
    		CelluleGes = CellGesRacine + GesLet;
    		CelluleDpe = CellDpeRacine + DpeLet;
     
    		document.getElementById(CelluleGes).innerHTML = GesVal;
     		document.getElementById(CelluleDpe).innerHTML = DpeVal;
     
     
    	}
    immodetail.Fields.Item("GES").Value contenant une lettre de A à C
    immodetail.Fields.Item("GESNb").Value contenant la valeur à afficher

    Ma question est comment et quand faire appel à cette fonction, pour qu'elle soit exécutée et modifie le contenu des cellules en question?

    D'avance merci

  2. #2
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    Citation Envoyé par Goltar Voir le message
    Bonjour à tous,
    Votre aide serait bienvenue !
    Dans un page ASP VBScript, j'ai un tableau HTML dont certaine cellule sont nommée:
    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
    <table width="500" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td id="GES_A">&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td id="DPE_A">&nbsp;</td>
      </tr>
     <tr>
        <td id="GES_B">&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td id="DPE_B">&nbsp;</td>
      </tr>
      <tr>
        <td id="GES_C">&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td id="DPE_C">&nbsp;</td>
      </tr>
      <tr>
        <td id="GES_D">&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td id="DPE_D">&nbsp;</td>
      </tr>
    </table>
    J'aimerais via une fonction Javascript, récupérer certaines valeurs d'un Recordset et suivant ces valeurs mettre à jour le tableau.
    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
    function AdaptTableau (){
    	var GesLet, GesVal, DpeLet, DpeVal, CelluleGes, CelluleDpe, CellGesRacine, CellDpeRacine;
    	    CellGesRacine = "GES_";
    		CellDpeRacine = "DPE_";
    		GesLet = <%=(immodetail.Fields.Item("GES").Value)%>;
    		GesVal = <%=(immodetail.Fields.Item("GESNb").Value)%>;
    		DpeLet = <%=(immodetail.Fields.Item("DFE").Value)%>;
    		DpeVal = <%=(immodetail.Fields.Item("DFENb").Value)%>;
    		CelluleGes = CellGesRacine + GesLet;
    		CelluleDpe = CellDpeRacine + DpeLet;
     
    		document.getElementById(CelluleGes).innerHTML = GesVal;
     		document.getElementById(CelluleDpe).innerHTML = DpeVal;
     
     
    	}
    immodetail.Fields.Item("GES").Value contenant une lettre de A à C
    immodetail.Fields.Item("GESNb").Value contenant la valeur à afficher

    Ma question est comment et quand faire appel à cette fonction, pour qu'elle soit exécutée et modifie le contenu des cellules en question?

    D'avance merci
    Je ne comprends pas là
    tu génère ta fonction en vbs donc côté serveur
    tu ne peux donc faire ça que lorsque tu génère la page
    du coup ta fonction à des valeurs fixe
    alors à quoi cela peut-il bien servir ?
    mets directement tes valeur dans la table et ce sera fini.

    si par contre tu compte mettre à jour la table après l'avoir afficher
    ta fonction n'a pas à être généré par VB
    c'est du Javascript pur dont tu as besoin.
    ta fonction doit faire un appel xmlhttpRequest à une URL (qui contient du vbs) qui retournera les donnée et uniquement les données (soit en json soit en xml)
    en réponse de cet appel ta fonction récupère les données et les place dans la table.

    vu que tu est dans ASP and Co cherche sur MSDN XMLHttpRequest la doc est complète (c'est d'ailleurs MS qui à développé le concept qui c'est depuis généralisé)
    A+JYT

  3. #3
    Membre habitué Avatar de Goltar
    Homme Profil pro
    Eternel Etudiant Curieux
    Inscrit en
    Mars 2011
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Eternel Etudiant Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2011
    Messages : 216
    Points : 137
    Points
    137
    Par défaut
    du coup ta fonction à des valeurs fixe
    alors à quoi cela peut-il bien servir ?
    mets directement tes valeur dans la table et ce sera fini.
    Le problème est que, suivant la valeur retournée par mon recordset, la cellule à populer peut varier.

    Mon projet est un site immobilier, le visiteur choisi un bien et désire afficher les détails de celui-ci. Par clic sur un bouton -> ouverture d'une nouvelle page avec passage de parametre de l'id du bien. Récupération des données du bien dans la db. Un des détails du bien (obligatoire pour l'immo) est le tableau des valeurs GES (Gaz à Effet de Serre) et de DPE (Déperdition d'énergie).
    Dans ce tableau, il faut afficher un flèche de correspondance au niveau A,B,C,D... et indiquer la valeur.

    Je donc créé un tableau et j'essaie vainement de populer la bonne case.

    Peut-être plus clair en visualisant:
    1) ICI choisir dans le menu Immobilier / Disponibilités
    2) Cliquer sur la carte le département 06
    3) Cliquer le bouton détail du bien choisi
    4) Onglet DPE/GES

  4. #4
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    c'est bien ce que je dis lorsque ton VBS génère la page tu as qu'une seule valeur
    tu peux donc en vbs généré une table html sans en passer par du javascript

    c'est tout du côté serveur
    Code html : 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
    <table width="500" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td id="GES_A"><% if('A' == immodetail.Fields.Item("GES").Value) {
          print '=&gt;'
        } else {
          print '&nbsp;'
        }%></td>
        <td>&nbsp;</td>
        <td><% if('A' == immodetail.Fields.Item("GES").Value) {
          print immodetail.Fields.Item("GESNb").Value
        } else {
          print '&nbsp;'
        }%></td>
        <td id="DPE_A">&nbsp;</td>
      </tr>
       <tr>
        <td id="GES_B"><% if('B' == immodetail.Fields.Item("GES").Value) {
          print '=&gt;'
        } else {
          print '&nbsp;'
        }%></td>
        <td>&nbsp;</td>
        <td><% if('B' == immodetail.Fields.Item("GES").Value) {
          print immodetail.Fields.Item("GESNb").Value
        } else {
          print '&nbsp;'
        }%></td>
        <td id="DPE_B">&nbsp;</td>
      </tr>
    ...

    etc.
    pas besoin d'en passer par des fonction ou autre truc tu génère directement ta page

    A+JYT

  5. #5
    Membre habitué Avatar de Goltar
    Homme Profil pro
    Eternel Etudiant Curieux
    Inscrit en
    Mars 2011
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Eternel Etudiant Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2011
    Messages : 216
    Points : 137
    Points
    137
    Par défaut
    Génial !!!
    Merci sekaijin

  6. #6
    Membre habitué Avatar de Goltar
    Homme Profil pro
    Eternel Etudiant Curieux
    Inscrit en
    Mars 2011
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Eternel Etudiant Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2011
    Messages : 216
    Points : 137
    Points
    137
    Par défaut
    Encore merci !
    Le code correct est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <% if("D" = immodetail.Fields.Item("GES").Value) Then Response.write immodetail.Fields.Item("GESNb").Value else Response.write("&nbsp;")%>

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 17/05/2011, 13h17
  2. Réponses: 0
    Dernier message: 12/11/2007, 14h13
  3. Réponses: 3
    Dernier message: 26/09/2006, 11h17
  4. Réponses: 2
    Dernier message: 06/04/2006, 21h18
  5. Astuces pour mettre à jour un exe ?
    Par TreizeSegments dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 20/07/2005, 20h02

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