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

Langage PHP Discussion :

Récupération automatique de données et insertion dans un formulaire.


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2013
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2013
    Messages : 59
    Par défaut Récupération automatique de données et insertion dans un formulaire.
    Bonjour,

    J'ai trouvé sur le site, les informations pour récupérer les données dans une BdD pour les insérer dans un formulaire. Merci à la communauté
    Jusque là pas de souci. Mais je souhaiterai savoir si il est possible d'insérer ces données séparément dans des "input" ?
    Dans un "select", cela fonctionne mais ça ne convient pas. Alors je les encadre...

    Voici le script de la page test :

    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
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtmll/DTD/xhtml-transitional.dtd">
    <html xmlns="http://www.w3.org.199/xhtml">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <script type='text/javascript'>
     
                function getXhr() {
                    var xhr = null;
                    if (window.XMLHttpRequest) // Firefox et autres
                        xhr = new XMLHttpRequest();
                    else if (window.ActiveXObject) { // Internet Explorer 
                        try {
                            xhr = new ActiveXObject("Msxml2.XMLHTTP");
                        } catch (e) {
                            xhr = new ActiveXObject("Microsoft.XMLHTTP");
                        }
                    }
                    else { // XMLHttpRequest non supporté par le navigateur 
                        alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
                        xhr = false;
                    }
                    return xhr;
                }
     
                /**
                 * Appel sur "onchange"
                 */
                function go() {
                    var xhr = getXhr();
                    // On défini ce qu'on va faire quand on aura la réponse
                    xhr.onreadystatechange = function() {
                        // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
                        if (xhr.readyState == 4 && xhr.status == 200) {
                            leselect = xhr.responseText;
                            // On se sert de innerHTML pour rajouter les options a la liste
                            document.getElementById('NOM').innerHTML = leselect;
     
                        }
                    }
     
                    // Ici on va voir comment faire du post
                    xhr.open("POST", "ajaxagent.php", true);
                    // ne pas oublier ça pour le post
                    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
                    // ne pas oublier de poster les arguments
                    // ici, l'id de l'agent
                    sel = document.getElementById('EMAIL');
                    ID_AGENT = sel.options[sel.selectedIndex].value;
                    xhr.send("ID_AGENT=" + ID_AGENT);
                }
            </script>
     
        </head>
        <body>
            <form>
     
     
                    <label>Email</label>
                    <select name='EMAIL' id='EMAIL' onchange='go()'>
                        <option value='-1'>*************</option>
                        <?php
    // Parametres mysql
                            define('DB_SERVER', 'localhost'); // serveur mysql
                            define('DB_SERVER_USERNAME', 'root'); // nom d'utilisateur
                            define('DB_SERVER_PASSWORD', ''); // mot de passe
                            define('DB_DATABASE', 'materiels'); // nom de la base
    // Connexion au serveur mysql
                            $connect = mysqli_connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD, DB_DATABASE) or die('Impossible de se connecter : ' . mysqli_error());
                            $requete = "SELECT * FROM agents ORDER BY NOM;";
                            $res = mysqli_query($connect,$requete);
                        while ($row = mysqli_fetch_assoc($res)) {
                            echo "<option value='" . $row["ID_AGENT"] . "'>" . $row["EMAIL"] . "</option>";
                        }
                        ?>
                    </select><br/><br/>
                   <fieldset style="width: 600px; height: 20px">
                    <div id='NOM' style='display:inline'>
     
                    </div>  
                 </fieldset>
            </form>
        </body>
    </html>
    Voici le script de la page complémentaire:

    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
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtmll/DTD/xhtml-transitional.dtd">
    <html xmlns="http://www.w3.org.199/xhtml">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
     
    <?php
    	echo "";
    	if(isset($_POST["ID_AGENT"])){
    define('DB_SERVER', 'localhost'); // serveur mysql
                            define('DB_SERVER_USERNAME', 'root'); // nom d'utilisateur
                            define('DB_SERVER_PASSWORD', ''); // mot de passe
                            define('DB_DATABASE', 'materiels'); // nom de la base
    // Connexion au serveur mysql
                            $connect = mysqli_connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD, DB_DATABASE) or die('Impossible de se connecter : ' . mysqli_error());                        
                            $requete = "SELECT ID_AGENT,NOM,PRENOM,SERVICE FROM agents WHERE ID_AGENT=".$_POST["ID_AGENT"]." ";
                            $res = mysqli_query($connect,$requete);
    		while($row = mysqli_fetch_assoc($res)){
    			echo "<option value='".$row["ID_AGENT"]."'>Nom : ".$row["NOM"]." &nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp; "
                                    . "Prénom : ".$row["PRENOM"]." &nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp; Service : ".$row["SERVICE"]."</option>";
    		}
    	}
    	echo "";
    ?>
    </html>
    Merci par avance.

  2. #2
    Membre averti
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Novembre 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Novembre 2013
    Messages : 13
    Par défaut
    Si j'ai bien compris tu cherches à mettre tes données dans des champs plutôt que dans un menu déroulant?

    Sur mon site je fais un truc dans le même genre:
    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
    <form action="index.php?controler=Admin&action=UpdateSuccess" method ="post">
    		<fieldset id="team">
    			<legend>L'équipe (<?php echo count($team);?>)</legend>
                     		<table style="border:1px solid black;">
    					<tr>
    					<?php
    					foreach ($team as $member){
    						echo "<td>" . $member['username'] ."</td><td><input id=". $member['username'] ." name=". $member['username'] ." size=\"5\" value=". $member['success'] ."></td>";
     
    						echo "</tr>";
    					}
    					?>
    				</table>
    			<input type="submit" id="coco" name="coco" value="Mise à jour" />
    		</fieldset>
    	</form>
    Je parcours mon tableau de résultats avec le foreach et j'insère les données dans des input (ça me sert pour faire des mises à jour)...

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2013
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2013
    Messages : 59
    Par défaut
    Merci de ta réponse Oxyseb,

    Mais j'ai testé et pour mon cas cela ne donne rien...

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Pourrait-on voir le code que tu as testé ?

    EDIT : @jreaux : Prem's !
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Citation Envoyé par Jean-Michel G Voir le message
    ...cela ne donne rien...
    C'est sûr que ça va bien nous aider !


    [EDIT] Hello, Celira !

  6. #6
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2013
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2013
    Messages : 59
    Par défaut
    Bonsoir,

    Bon j'ai persévéré et trouvé.

    Il faut dire que je posait une simple question "possible ou pas" avec mon code d'origine !

    Heu...Jérôme et Celira, drôle de façon de répondre par la positive à ma question !!!

    Je me suis dis si ils sont d'humeur taquine c'est qu'il y a surement un moyen...(un peu agacé...)

    Alors pour vous répondre voilà le code...qui fonctionne.

    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
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtmll/DTD/xhtml-transitional.dtd">
    <html xmlns="http://www.w3.org.199/xhtml">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
     
    <?php
    	echo "";
    	if(isset($_POST["ID_AGENT"])){
    define('DB_SERVER', 'localhost'); // serveur mysql
                            define('DB_SERVER_USERNAME', 'root'); // nom d'utilisateur
                            define('DB_SERVER_PASSWORD', ''); // mot de passe
                            define('DB_DATABASE', 'materiels'); // nom de la base
    // Connexion au serveur mysql
                            $connect = mysqli_connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD, DB_DATABASE) or die('Impossible de se connecter : ' . mysqli_error());                        
                            $requete = "SELECT ID_AGENT,NOM,PRENOM,SERVICE FROM agents WHERE ID_AGENT=".$_POST["ID_AGENT"]." ";
                            $res = mysqli_query($connect,$requete);
    		while($row = mysqli_fetch_assoc($res)){
    			echo "<option value='".$row["ID_AGENT"]."'>Nom : <input value='".$row["NOM"]."'></input>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "
                                    . "Prénom : <input value='".$row["PRENOM"]."'></input> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Service : <input value='".$row["SERVICE"]."'></input></option>";
    		}
    	}
    	echo "";
    ?>
    </html>
    Bon, ce n'est certe pas aussi propre que si vous l'aviez écrit et j'avoue que les "espaces" cela n'est pas très jolie.
    Mais pour ce que je vais en faire, je ne suis pas trop exigent.

    NB
    Mais j'ai testé et pour mon cas cela ne donne rien...
    En fait je ne mettais pas le "input" au bon endroit.

    Aller, Jérôme, Celira, sans rancune, merci d'avoir pris le temps de répondre.

    Encore merci Oxyseb, ton bout de code m'a bien aidé.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour Jean-Michel ,

    1/ La réponse était évidemment oui, c'est possible.

    (N.B. Si tu voulais juste "possible ou pas", pourquoi diable mettre autant de code ? )

    2/ Ecrire "ca ne donne rien" sans montrer ton propre code (la partie concernée, modifiée !) n'a aucun intérêt dans la résolution du problème.

    3/ Si tu veux pouvoir récupérer les valeurs des input, il faut leur donner un name"..." (comme oxyseb te l'a montré dans son 1er message !)

    4/ Quant aux "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;", le CSS existe pour éviter ça (margin, padding,...) !
    Ajouter quelques balises HTML de mise en page comme <p>, <label...> ne ferait pas de mal non plus.

    5/
    Citation Envoyé par Jean-Michel G Voir le message
    Bon j'ai persévéré et trouvé.
    C'est tout à ton honneur... et la meilleure méthode pour progresser !

    Lire aussi les tutoriels et cours de formation pour apprendre la programmation PHP : http://php.developpez.com/cours/
    Dernière modification par Invité ; 30/04/2015 à 09h55.

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

Discussions similaires

  1. recuperation données et insertion dans table
    Par amocco dans le forum Débuter
    Réponses: 1
    Dernier message: 25/05/2009, 16h41
  2. Récupération automatique des données d'une feuille de saisie
    Par vieri dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 08/01/2009, 17h21
  3. Réponses: 8
    Dernier message: 16/05/2008, 09h53
  4. [SQL] Récupération de données et Insert dans une table
    Par heteroclite dans le forum PHP & Base de données
    Réponses: 32
    Dernier message: 12/07/2006, 16h17
  5. [ODBC] Récupération d'une donnée pour insertion dans une autre table
    Par rom950 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 10/03/2006, 17h13

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