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 :

Comment récuperer en JS une donnée d'un tableau PHP et l' insérer dans un input


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Décembre 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2011
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Comment récuperer en JS une donnée d'un tableau PHP et l' insérer dans un input
    Bonjour,
    J'essaye de trouver une solution à mon problème mais je n'arrive pas:
    Voir code en gras en bas, j'ai fais des tests avec //window.alert(elt.innerHTML); // alert(document.getElementsByTagName('table')[0].getElementsByTagName('tr')[1].cells[0].innerHTML);pour essayé de comprendre mais pas moyen, si vous pouviez m'aider. Merci

    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
    <html>
    <meta charset="UTF-8">
    <?php include '../config_sql/config.php'; 
    $reponse = mysql_query("SELECT * FROM adherents");
    ?>
    <head> <link rel="stylesheet" type="text/css" href="../css/index_Adherent.css"></head>
    
    <body>
    
    <div id="champs">
    	<label>Matricule<label/><input type="text" id="ida"/>
    	<label>Nom:<label/><input type="text" name="Nom"/>
    </div>
    
    
    
     <div id="global">
    	<h4>Recherche Adherents</h4>
    	<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Recherche par nom" title="Type in a name">
    
    	<table id="matable">
    		
    			<tr>
    				<th>Matricule</th>
    				<th>Nom</th>
    			
    			</tr>
    			
    			<?php //On affiche les lignes du tableau une à une à l'aide d'une boucle
                while($donnees = mysql_fetch_array($reponse))
                {
                ?>
             
    			<tr class="style" onmouseover="setMouseOver(this);" onmouseout="setMouseOut(this);" onclick="fctClick(this);"  >
    		  
    				<td class="ida" ><?php echo $donnees['id_adherent'];?></td>
                    <td class="no"><?php echo $donnees['Nom'];?></td>
                </tr>
                    
                    
                <?php
                } //fin de la boucle, le tableau contient toute la BDD
                
                ?>
    
    
    	</table>
    </div>
    
    <script>
    
    			// code pour la recherche conextuelle
    		function myFunction() {
    			var input, filter, table, tr, td, i;
    			
    			
    			input = document.getElementById("myInput");
    			filter = input.value.toUpperCase();
    			table = document.getElementById("matable");
    			tr = table.getElementsByTagName("tr");
    					for (i = 0; i < tr.length; i++) {
    						td = tr[i].getElementsByTagName("td")[1];
    							if (td) {
    								if (td.innerHTML.toUpperCase().indexOf(filter) > -1) {
    									tr[i].style.display = "";
    							} else {
    									tr[i].style.display = "none";
    									}
        }       
      }
    
    }
    </script>
    
    
    	<script type="text/javascript">
    
        function setMouseOver(elt) {elt.className = elt.className == 'style_click' ? 'style_click' : 'style_over';}
    
        function setMouseOut(elt)  {elt.className = elt.className == 'style_click' ? 'style_click' : 'style';
    	
    	}
        
    	
    	// je veux recuperer la valeur $donnees['id_adherent'] de la ligne dans <input type="text" id="ida"/> lorsque je selectionne une ligne quelconque
    	function fctClick(elt){	 
    	
    
    	}
    	
    
    
    </script>
    
    	 <style type="text/css">
    
        .style {background-color:white;}
    
        .style_over {background-color:#D58490;}
         
        .style_click {background-color:blue;}
    
        </style>
    
    
    </body>
    </html>

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 197
    Points : 300
    Points
    300
    Par défaut
    Bonjour,

    Pour répondre à ta question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    	document.getElementById('ida').value = elt.getElementsByClassName('ida')[0].innerHTML;
    A placer dans le corps de ta fonction fctClick.

    Une remarque :

    - L'extension php "mysql_" est obsolète et ne doit plus être utilisée. Elle n'existe plus et a été supprimée en php 7.0. Même si tu travailles avec une version plus ancienne, il faut lui préférer mysqli_ ou plus encore PDO.

  3. #3
    Candidat au Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Décembre 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2011
    Messages : 6
    Points : 3
    Points
    3
    Par défaut J'ai tjrs le même pb dans mon script JS
    Bonjour, merci pour PDO, je vais voir comment refaire par contre j'ai refais plein de tests mas sans succès


    J'ai simplifié mon code pour une meilleur lecture, quand j’accède à ma page j'ai le résultat ci-dessous:

    TEST

    1 test1
    2 test2
    3 test3


    quand je clic sur la première ligne rien ne se passe mais elt.style.backgroundColor="red" fonctionne pour la cellule
    pour les autres lignes sa fait la même chose

    Pouvez vous m'apporter vôtre aide, merci.




    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
    <html>
    <?php include 'config.php'; 
    $reponse = mysql_query("SELECT * FROM adherents");
    ?>
     
    <body>
      <p id="p-contenu">TEST<p/>
         <table>
    		  <tr>
    			<?php //On affiche les lignes du tableau une à une à l'aide d'une boucle
                while($donnees = mysql_fetch_array($reponse))
                {
                ?>
                     <td  id="id-adherent" onclick="fctClick(this);"><?php echo $donnees['id_adherent'];?></td>
                     <td  id="nom" onclick="fctClick(this);"><?php echo $donnees['Nom'];?></td>
             </tr>
     
     
                <?php }  ?>
         </table>
     
         <script>
     
        function fctClick(elt){	 
            //histoire de tester ma fonction
     
    elt.style.backgroundColor="red";
     
    //formule ne fonctionne pas
     
           document.getElementById('p-contenu').value = elt.getElementsById('id-adherent')[0].innerHTML;
     
     
    	}
     
    </script>
     
    </body>
    </html>

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 197
    Points : 300
    Points
    300
    Par défaut
    Pour répondre à ta question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById('p-contenu').innerHTML = elt.innerHTML;
    Je comprends dans tes questions que tu ne maitrises pas tout à fait certaines bases essentielles pour une meilleur compréhension de ce à quoi tu te frottes.
    Tu trouveras des cours en ligne qui pourront peut être t'aider. Par exemple sur ce site.

    De plus, tu devrais lire les règles de ce forum et mettre par exemple tes extraits de code entre les balises adéquates, si tu ne veux pas te faire avertir par les modérateurs.
    Tu pourras les trouver ici.

  5. #5
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Salut,

    petite astuce : alert c’est pas ce qu’il y a de plus pratique pour développer. Aujourd’hui tous les navigateurs ont une console que tu ouvres avec la touche F12, et qui affiche les messages de log quand tu appelles console.log() dans ton script. Remplace tous tes alert par ça, tu verras, c’est bien plus confortable

    Et sinon pour ton dernier problème, il n’y a pas de fonction getElementsById, pour la bonne raison qu’un id doit être unique dans la page. Utilise plutôt des classes.
    À propos, dans le code de ton premier post, les <tr> étaient dans la boucle while, et maintenant ils sont à l’extérieur. C’est normal ?

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/04/2008, 21h03
  2. Comment trouvé ID d'une donnée
    Par isarian dans le forum Développement
    Réponses: 9
    Dernier message: 27/03/2008, 14h27
  3. Comment faire pour remplacer une donnée Null par une autre.
    Par Dpedrosa dans le forum Général VBA
    Réponses: 1
    Dernier message: 09/03/2008, 11h25
  4. Réponses: 2
    Dernier message: 28/10/2005, 12h52
  5. Comment faire pour récup une donnée d'une liste déroulante
    Par magic8392 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 03/03/2005, 15h00

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