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 :

Récupération données tableau PHP/HTML


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Avril 2010
    Messages : 23
    Par défaut Récupération données tableau PHP/HTML
    Bonjour,

    Je suis, en ce moment, en train d'implémenter un tableau HTML/PHP qui récupère des données dans une base de données ORACLE. Avec l'aide de fonctions JAVASCRIPT, j'affiche le tableau ainsi qu'un petit menu afin d'interagir (éditer/supprimer/ajouter des lignes au tableau et donc à la base de données). Je peux aussi mettre en surbrillance les lignes et les selectionner. Je peux savoir quelle ligne est selectionnée grâce à 'ligne.rowIndex' en JAVASCRIPT.

    Là le code PHP/HTML qui genère 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
    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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
    function execute_requete($select,$where,$order) 
    {
        // La variable '$serveur' devient globale
        global $serveur;
     
        $sql = $select . ' ' . $where.' '.$order;    
     
        // Execution requête
        $res= odbc_exec ($serveur,$sql);
     
        return $res;
    }
     
     
        $clause_select = '...';
        $clause_where = '...';
        $clause_order = '...';
     
        if ($q <> '') 
        {
            $clause_where = $clause_where . ' AND ' .$q;
        }
     
     
        if ($r <> '') 
        {
            $clause_order = $r;
        }
     
        // Execution requête avec fonction 'execute_requete'
        $res = execute_requete($clause_select,$clause_where,$clause_order);
     
     
        // Entête du tableau
        // Decription des attributs de la balise 'table'
        // border = affiche (1) ou non (0) les bordures du tableau 
        echo "<table name='table' border='1' bordercolor='black' bordercolordark='' cellspacing='1' cellpadding='1' frame='' rules='rows'>";
     
     
        echo "<tr align='center' bgcolor='#1E90FF'>
     
        <th><font face='Verdana' size='2' color='#FFFFFF'>IDDOC</th>
        <th><font face='Verdana' size='2' color='#FFFFFF'>INSEE</th>
        <th><font face='Verdana' size='2' color='#FFFFFF'>DESCRIPTION</th>
        <th><font face='Verdana' size='2' color='#FFFFFF'>FICHIER</th>
        <th><font face='Verdana' size='2' color='#FFFFFF'>TYPE</th>
        <th><font face='Verdana' size='2' color='#FFFFFF'>PHOTO_DEFAUT</th>
        <th><font face='Verdana' size='2' color='#FFFFFF'>DOC_NUM</th>
        <th><font face='Verdana' size='2' color='#FFFFFF'>DATE_SAVE_DOC</th>
        <th><font face='Verdana' size='2' color='#FFFFFF'>DATE_SAVE_PUB</th>
        <th><font face='Verdana' size='2' color='#FFFFFF'>TAG_ADMIN</th>
        <th><font face='Verdana' size='2' color='#FFFFFF'>TAG_DELETE</th>
        <th><font face='Verdana' size='2' color='#FFFFFF'>LPN</th>
        <th><font face='Verdana' size='2' color='#FFFFFF'>ENTITYID</th>
     
        </tr>";
     
     
        //Parcours curseur PHP en variable tableau
        while($row = odbc_fetch_array($res))
        {
        echo "<tr align='center' name='ligne' onclick='clic_selection(this)' onmousemove='change_lavender(this)' onmouseout ='change_transparent(this)'>";
        echo "<td id='iddoc'><font face='Verdana' size='2' color='red'>" . $row['IDDOC'] . "</td>";
        echo "<td><font face='Verdana' size='2' color='black'>" . $row['INSEE'] . "</td>";
        echo "<td><font face='Verdana' size='2' color='black'>" . $row['DESCRIPTION'] . "</td>";
        echo "<td><font face='Verdana' size='2' color='blue'>" . "<a href=" . $row['FICHIER'] . ">Fichier correspondant</a>" . "</td>"; 
        echo "<td><font face='Verdana' size='2' color='black'>" . $row['TYPE'] . "</td>";
        echo "<td><font face='Verdana' size='2' color='black'>" . $row['PHOTO_DEFAUT'] . "</td>";
        echo "<td><font face='Verdana' size='2' color='black'>" . $row['DOC_NUM'] . "</td>";
        echo "<td><font face='Verdana' size='2' color='black'>" . $row['DATE_SAVE_DOC'] . "</td>";
        echo "<td><font face='Verdana' size='2' color='black'>" . $row['DATE_SAVE_PUB'] . "</td>";
        echo "<td><font face='Verdana' size='2' color='black'>" . $row['TAG_ADMIN'] . "</td>";
        echo "<td><font face='Verdana' size='2' color='black'>" . $row['TAG_DELETE'] . "</td>";
        echo "<td><font face='Verdana' size='2' color='black'>" . $row['LPN'] . "</td>";
        echo "<td><font face='Verdana' size='2' color='black'>" . $row['ENTITYID'] . "</td>";
        echo "</tr>";
        }

    Et là le code JAVASCRIPT qui gère le changement de couleur des lignes :

    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
     
    /*******************************************************
     Gestion du changement de couleur des lines du tableau
    *******************************************************/
    var select = 0;
    var temp;
     
    // Colore la line en transparent
    function change_transparent(line)
    {
    	if (line.style.background!='orange') line.style.background='transparent';
    }
     
    // Colore la line en lavande
    function change_lavender(line)
    {
    	if (line.style.background!='orange') line.style.background='lavender';
    }
     
    // Colore la line en transparent si elle est orange
    // Remet en transparent la line selectionnée precedement et colore celle si en orange si differente
    // Indique qu'une line est selectionnée en mettant le parametre select a 1
    function clic_selection(line){
     
    	if (!select)
    	{	
    		select = 1;
    		line.style.background='orange';
    		temp=line;
    		show_menu();
    	}
    	else 
    	{
    		if (line.style.background=='orange') 
    		{	
    			select = 0;
    			line.style.background='transparent';
    			hide_menu();
    		}
    		else
    		{	
    			temp.style.background='transparent';
    			line.style.background='orange';
    			temp=line;
    			show_menu();
    		}
    	}
    }
    Cependant je souhaite aussi pouvoir récupérer les champs d'une cellule de mon tableau. Et je n'arrive pas à pointer dessus. J'ai essayé avec 'getElementById' mais cela ne fonctionne pas. Si quelqu'un a une meilleure proposition, je suis preneur...

    Merci d'avance

  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 et bienvenue sur Developpez.com
    Citation Envoyé par mooky_64 Voir le message
    J'ai essayé avec 'getElementById' mais cela ne fonctionne pas. Si quelqu'un a une meilleure proposition, je suis preneur...
    Le "this" que tu utilises là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick='clic_selection(this)'
    est la meilleure solution.

    Qu'est ce qui ne fonctionne pas ?
    Une erreur ? Laquelle et à quel endroit ?

    A+

  3. #3
    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
    Et ... heu ... quel est le rapport avec Ajax ?

    A+

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Avril 2010
    Messages : 23
    Par défaut
    Je vois ce que tu veux dire pour le "this". Mais en fait, j'arrive à savoir quelle ligne est selectionnée mais je voudrais récupérer les champs en colonne pour les mettre dans un formulaire de saisie (rapport à la base de données). Pour, résumer, j'arrive à pointer sur la ligne mais pas sur les champs.

    Et ... heu ... quel est le rapport avec Ajax ?
    Mon application complète s'articule autour de cette solution libre.

  5. #5
    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 mooky_64 Voir le message
    je voudrais récupérer les champs en colonne
    Arf !

    Plus facile de récupérer les champs d'une ligne que d'une colonne

    Il faut que tu parcours toutes les lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var tab_lignes = document.getElementById("id_table").getElementsByTagName("tr")
    et que pour chacune tu récupères le N ème champ
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tab_lignes[i].getElementsByTagName("td")[N].innerHTML
    A+

  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 mooky_64 Voir le message
    Mon application complète s'articule autour de cette solution libre.
    Oui mais pas le code qui pose problème forum Javascript

    A+

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Avril 2010
    Messages : 23
    Par défaut
    Il faut que tu parcours toutes les lignes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var tab_lignes = document.getElementById("id_table").getElementsByTagName("tr")
    et que pour chacune tu récupères le N ème champ

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tab_lignes[i].getElementsByTagName("td")[N].innerHTML
    Ok, j'ai mis tout ça dans une fonction JS pour test mais j'ai un message d'erreur "undefined a la valeur Null ou n'est pas un objet" (clair comme mesasge d'erreur...). Donc je dois me tromper dans l'implémentation de ma fonction, tu pourrais m'aiguiller?

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

Discussions similaires

  1. Récupération donnée tableau
    Par Seb2913 dans le forum Langage
    Réponses: 3
    Dernier message: 12/02/2015, 11h56
  2. Syntaxe récupération données tableau
    Par zozoman dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 16/05/2013, 16h54
  3. [MySQL] Retour ligne tableau PHP HTML
    Par iMax92 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 03/03/2013, 16h06
  4. [MySQL] Problème affichage tableau PHP avec données SQL
    Par akalaan dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/04/2006, 14h34
  5. [MySQL] Récupération de code php dans une base de données
    Par kitana dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 21/03/2006, 00h25

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