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

  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?

  8. #8
    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
    Donc je dois me tromper dans l'implémentation de ma fonction, tu pourrais m'aiguiller?
    En la voyant, peut être

    A+

  9. #9
    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
    Mieux effectivement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function collect(line)
    {
    // "line" désigne ma ligne, "put_datagrid" mon tableau
    var tab_lignes = document.getElementById("put_datagrid").getElementsByTagName("tr");
    var test = tab_lignes[line].getElementsByTagName("td")[1].innerHTML;
    }

  10. #10
    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
    Arf !

    Je ne t'avais donné que des indications : y avait 2, 3 trucs à compléter

    "parcours" boucle

    tab_lignes est un tableau (array) d'éléments (les tr).
    Il faut que tu parcours ce tableau (dans un while() ) et qu'à chaque itération, tu as ailles récupérer le innerHTML du bon td ...

    Tu vois mieux, là ?

    A+

  11. #11
    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 mieux oui... je teste et je re-poste pour solution (!!) ou pour aide.

    Merci

  12. #12
    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
    Mais pourquoi tu passes une ligne en paramètre, alors que tu dois les parcourir toutes ?
    L'indice du td à récupérer serait plus utile ...

    A moins qu'il y ait un truc que j'ai mal compris.

    A+

  13. #13
    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
    Non, tu avais très bien compris mon problème... et ça fonctionne !

    Merci

    @+

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 140
    Par défaut
    Bonjour le forum

    je post ici car me semble etre exactement le même problème que je rencontre.

    Contexte: j'ai 2 tableaux HTML,
    le 1er appelé ID="PointChart" ayant une liste de noms et leurs points accumulés correspondants
    le 2e est un tableau d'items ayant, en derniere colonne, un ensemble de noms correspondants aux personnes souhaitant acqérir cet item. Par exemple pour 1 item donné (ligne i), j'aurai dans la derniere cellule les noms "Nom11 Nom29 Nom3 etc..." dans un ordre quelconque .

    Mon but est de trier cette derniere cellule, en fonction des points que chaque nom a dans le 1er tableau, et donc d'implementer une fonction ki m'affiche cet ensemble de noms dans cette cellule sous forme de (par exemple):
    1. Nom29 ($Points de Nom29)
    2. Nom3 ($Points de Nom3)
    3. Nom11 ($Points de Nom11)
    others: [le reste des noms, seuls les 3 1ers m'interessent, et ça evite d'allonger inutilement la hauteur de la cellule]

    Je me suis donc dit ok je vais donc commencer par recupérer en javascript les valeurs de mon 1er tableau avant de voir pour la suite... et là jamais reussi a taper la bonne syntaxe de GetElementById ou de GetElementByTagName... J'en ai essayé tellement que je ne me rappelle plus que l'erreur que j'obtient, toujours la même: "Cet Objet a la valeur NULL ou n'est pas un objet (erreur Undefined)"

    le code que j'ai est le suivant:
    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
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    	<meta http-equiv="Content-Language" content="ja,en" />
     
    	<title>Test</title>
     
    	<script type="text/javascript" src="sorttable.js"></script>
    	<script type="text/javascript">
    	/* Hide / Show a div */
    	function DivStatus( div ){
    		var Obj = document.getElementById( div );
    		if( Obj.style.display == "none" ){
    			Obj.style.display = "table"; }
    		else{ Obj.style.display = "none"; } }
     
    	/* Language detection */
    	var NavLang = "ja"
    	if (navigator.language){ 
    		NavLang = navigator.language; }
    	else if (navigator.userLanguage){ 
    		NavLang = navigator.userLanguage; }
    	else{ alert("?"); }
    	if (NavLang == "ja" || NavLang == "jp") { NavLang = "ja"; }
    	else { NavLang = "en"; }
     
    	/*var test = tab_lignes.getElementsByTagName("td").innerHTML;*/
    	for(var i=0; i< document.getElementById('PointChart').rows.length; i++){ 
    		var tab_lignes = document.getElementById('PointChart').getElementsByTagName("tr")[i];
    		alert(NodeList.item(i).innerText); }
    	alert(tab_lignes); /*alert(test);*/
     
    	</script>
     
    	<STYLE type="text/css">
    		TD { background: #e3e6ff }
    		TH { text-align:center; cursor: hand }
        </STYLE>
     
    </head>
     
    <body>
     
    <!---------------------------------------------------------------------------------------------------------------
    	****************************************  POINT CHART  ******************************************************
    	------------------------------------------------------------------------------------------------------------- -->
    <hr size=5 width=500 align=left><h2><u>Point Chart</u> (Last update @ 2010/5/11)</h2></hr>
    <table id="PointChart" class="sortable" width="500" cellpadding="5">
    	<tr>
    		<th width="40%">Name</th>
    		<th width="15%">Points</th>
    		<th width="45%">Lock & End Lock date</th>
    	</tr>
     
    	<tr> <td>Cary</td>			<td>219</td>		<td></td> </tr>
    	<tr> <td>Chobito</td>		<td>1656</td>		<td>Sea until 2010/6/6</td> </tr>
    	<tr> <td>Cita</td>			<td>788.5</td>		<td></td> </tr>
    	<tr> <td>Copon</td>			<td>896</td>		<td>HNM until 2010/5/17</td> </tr>
    	<tr> <td>Drftguy</td>		<td>1198.5</td>		<td></td> </tr>
    	<tr> <td>Fsk</td>			<td>2869.5</td>		<td>Sea until 2010/5/24</td> </tr>
    	<tr> <td>Gallys</td>		<td>763.5</td>		<td></td> </tr>
    	<tr> <td>Hanamay</td>		<td>135.5</td>		<td>Sea until 2010/6/6</td> </tr>
    	<tr> <td>Hinataa</td>		<td>406</td>		<td></td> </tr>
    	<tr> <td>Hiux</td>			<td>220</td>		<td></td> </tr>
    	<tr> <td>Idex</td>			<td>1602</td>		<td>Einherjar until 2010/5/15</td> </tr>
    	<tr> <td>Iyung</td>			<td>2362</td>		<td>Sea until 2010/6/9</td> </tr>
    	<tr> <td>Kufye</td>			<td>1129</td>		<td></td> </tr>
    	<tr> <td>Lecardo</td>		<td>140</td>		<td></td> </tr>
    	<tr> <td>Leoru</td>			<td>1780</td>		<td></td> </tr>
    	<tr> <td>Ricker</td>		<td>1105.5</td>		<td></td> </tr>
    	<tr> <td>Masamunai</td>		<td>441</td>		<td></td> </tr>
    	<tr> <td>Mizal</td>			<td>2187.5</td>		<td>Einherjar until 2010/7/7</td> </tr>
    	<tr> <td>Nazarin</td>		<td>2697.5</td>		<td>VNM until 2010/6/26</td> </tr>
    	<tr> <td>Olgah</td>			<td>555.5</td>		<td></td> </tr>
    	<tr> <td>Perikles</td>		<td>300.5</td>		<td></td> </tr>
    	<tr> <td>Popins</td>		<td>883.5</td>		<td></td> </tr>
    	<tr> <td>Purusa</td>		<td>310.5</td>		<td></td> </tr>
    	<tr> <td>Rimull</td>		<td>253.5</td>		<td></td> </tr>
    	<tr> <td>Salashe</td>		<td>240.5</td>		<td></td> </tr>
    	<tr> <td>Slashman</td>		<td>1664</td>		<td></td> </tr>
    	<tr> <td>Shefky/Plutan</td>	<td>887</td>		<td></td> </tr>
    	<tr> <td>Stickyrice</td>	<td>238</td>		<td></td> </tr>
    	<tr> <td>Syamona</td>		<td>1360.5</td>		<td></td> </tr>
    	<tr> <td>Vaisun</td>		<td>1603.5</td>		<td></td> </tr>
    	<tr> <td>Vieru</td>			<td>478.5</td>		<td></td> </tr>
    	<tr> <td>Yoshihisa</td>		<td>153.5</td>		<td></td> </tr>
    	<tr> <td>Wort</td>			<td>1620</td>		<td>VNM until 2010/6/26</td> </tr>
    </table><br/><br/><br/>
     
    <!---------------------------------------------------------------------------------------------------------------
    	*****************************************  WISH LIST  *******************************************************
    	------------------------------------------------------------------------------------------------------------- -->
    <hr size=5 width=500 align=left><h2><u>Wishlist</u> (Last update @ 2010/5/9)</h2></hr>
     
    <button onclick="javascript:DivStatus( 'Table1' )">Hide/Show all tables</button><br/>
     
    <button onClick="javascript:DivStatus( 'Table1' )" style="width:500; margin-bottom:2px; cursor:hand">
    <strong><em>Einherjar</em></strong></button>
    	<table id="Table1" width="500" cellpadding="5">
    		<tr>
    			<th width="30%">Item Name</th>
    			<th width="15%">Item Cost</th>
    			<th width="20%">Lock Duration</th>
    			<th width="35%">Members wish</th>
    		</tr>
    <!--														Point Cost		Lock		Member wish				 -->
    		<tr> <td>ヴァルハラ頭<br/>Valhalla Helm</td>			<td>80</td>		<td>2</td>	<td>Iyung Leoru Slashman Idex</td> </tr>
    		<tr> <td>ヴァルハラ胴<br/>Valhalla Breastplate</td>	<td>100</td>	<td>2</td>	<td>Wort Garuku Popins Ricker Shefky Masamunai</td> </tr>
    		<tr> <td>バルキリーフォーク<br/>Valkyrie's Fork</td>		<td>150</td>	<td>2</td>	<td></td> </tr>
    		<tr> <td>ホフド<br/>Hofud</td>						<td>150</td>	<td>2</td>	<td></td> </tr>
     
    		<tr> <td>シャドウヘルム<br/>Shadow Helm</td>			<td>30</td>		<td>1</td>	<td></td> </tr>
    		<tr> <td>シャドウプレート<br/>Shadow Breastplate</td>	<td>100</td>	<td>2</td>	<td></td> </tr>
    		<tr> <td>シャドウガントレ<br/>Shadow Gauntlets</td>		<td>15</td>		<td>1</td>	<td></td> </tr>
    		<tr> <td>シャドウクイシュ<br/>Shadow Cuishes</td>		<td>20</td>		<td>1</td>	<td></td> </tr>
    		<tr> <td>シャドウサバトン<br/>Shadow Sabatons</td>		<td>15</td>		<td>1</td>	<td></td> </tr>
     
    		<tr> <td>シャドウハット<br/>Shadow Hat</td>				<td>50</td>		<td>1</td>	<td></td> </tr>
    		<tr> <td>シャドウコート<br/>Shadow Coat</td>			<td>100</td>	<td>2</td>	<td></td> </tr>
    		<tr> <td>シャドウカフス<br/>Shadow Cuffs</td>			<td>30</td>		<td>1</td>	<td></td> </tr>
    		<tr> <td>シャドウトルーズ<br/>Shadow Trews</td>			<td>50</td>		<td>1</td>	<td></td> </tr>
    		<tr> <td>シャドウクロッグ<br/>Shadow Clogs</td>			<td>30</td>		<td>1</td>	<td></td> </tr>
    	</table><br/>
    </body></html>
    Mon seul moyen de tester sont les alert(), je testait plein de syntaxes differentes puis afficher avec alert le contenu de la variable JS, laquelle donne TOUJOURS SYTEMATIQUEMENT "undefined" ou "NULL"... m'énerve grave... Je m'attends à ce que l'alert me sorte (là dans l'exemple posté) toutes les valeurs du 1er tableau, rien que ça...
    Du coup vu que je n'ai rien compris à cette syntaxe, je ne peux pas continuer pour recuperer la valeur des dernieres cellules du 2e tableau.

    L'auteur d'origine de ce post semblait vouloir poster sa solution mais.... nada apparemment... et c'est le seul post qui se rapproche le plus de mon problème que j'ai trouvé avec Rechercher.

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 140
    Par défaut
    Un exemple de test foireux mais parlant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var tab_lignes = document.getElementById("PointChart").getElementsByTagName("tr"); /*alert(tab_lignes.length)=34*/
    for(var i=0; i< tab_lignes.length; i++){
        for(var j=0; j< 3; j++){ 
    	var test[i][j] = tab_lignes[i].getElementsByTagName("td")[j].innerHTML; } }
    alert(test[4][1]); /*devrait me retourner valeur de cellule 5e ligne 2e colonne, càd "896"*/
    Détails de l’erreur de la page Web

    Message*: 'document.getElementById(...)' a la valeur Null ou n'est pas un objet.
    Ligne*: 28 <- c'est la 1ére ligne du script ci dessus
    Caractère*: 2
    Code*: 0

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 140
    Par défaut
    rebonjour,

    Avec pas mal de tatonnements a grand coups d'Alert(), j'ai enfin reussi a obtenir les valeurs de mon tableau HTML dans un tableau Javascript. OUF

    MAIS

    fallait mentionner une règle qui me semble assez importante, et qui n'est mentionée nulle part quand il s'agit de recuperer des valeurs d'un tableau deja existant:
    Si vous mettez votre script de recup de données dans le <head></head> de votre page, votre code retournera TOUJOURS "Undefined" ou "n'est pas un objet" sur la 1ère ligne de votre script.
    Pourquoi ?
    Et bien je crois que c'est parce que la page n'étant pas encore chargée (et donc le tableau HTML ou PHP dont vous voulez extraire les valeurs) n'est pas encore chargée au moment de la lecture du script dans le <HEAD> !

    Solution: créer un bouton APRES le code de votre tableau PHP/HTML, ayant la propriété onclick="javascript: votreScriptRecupDonnées".

    dans le <HEAD> de ma page:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function BuildJStable() {
    var table_document = document.getElementById('PointChart1');
    var table_javasc = new Array(table_document.rows.length);
    for (i=0; i<table_document.rows.length; i++){
    		table_javasc[i] = new Array(table_document.rows[0].cells.length);
    		for (j=0; j<table_document.rows[0].cells.length; j++) {
    			table_javasc[i][j] = table_document.rows[i].cells[j].innerHTML;}}
    alert(table_javasc); }
    puis dans le <BODY> de ma page:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <table id="PointChart">
         bla bla bla bla
    </table>
    <button onclick="javascript:BuildJStable()">click moi !</button>
    et c'est seulement là que le alert(table_javasc) m'a enfin retourné mes valeurs !!

    Y a surement d'autres moyens qu'un bouton, c'est juste pour dire qu'il faut construire votre table JS APRES le chargement de la table réelle, sinon....

    ... bon je vais maintenant pouvoir continuer mon code et comparer avec mon 2e tableau.

    En esperant que ce post aidera les newbies comme moi + tard, @++

+ 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