Transfert de données du javascript vers formulaire html

Signaler
Messages postés
59
Date d'inscription
mercredi 21 juin 2006
Statut
Membre
Dernière intervention
26 octobre 2015
-
Messages postés
59
Date d'inscription
mercredi 21 juin 2006
Statut
Membre
Dernière intervention
26 octobre 2015
-
Bonsoir,

Débutant en javascript, je me demande comment alimenter mon formulaire html à partir d'un javascript.

Je récupère des informations provenant d'un script php selon la méthode ajax.

Voici mon script javascript :

function goAdrCtcEnt(param1)
{
    // Contrôle du navigateur
       var xmlhttp = getxmlhttp()
       
       if (!xmlhttp && typeof XMLHttpRequest!='undefined')
       {
        xmlhttp = new XMLHttpRequest();
    }
    
    xmlhttp.open("GET","../ajax/ajaxAdrCtcEnt.php?param1="+param1.value,false);
    xmlhttp.send(null);

        // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
        if(xmlhttp.status == 200)
        {
            var liste1 = xmlhttp.responseXML.getElementsByTagName('balise1');
            alert(xmlhttp.responseText);
        }
}


Dans le message "alert(xmlhttp.responseText);", je récupère bien ce qui vient de mon script php.

Mais je ne trouve pas comment le renvoyer vers mon formulaire html.

Merci d'avance

5 réponses

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
31
Salut

Peux-tu préciser ce que tu veux faire car formulaire est un peu vague.
Tu recois quoi comme donnée par ton ajax
et tu veux les mettres dans quoi.

Un type input text, un ckechedbox, un select

Pour text c'est avec la value qui faut gérer
Pour checkbox c'est checked
Pour select, ca dépend ce que tu veux faire

regarde http://www.w3schools.com/htmldom/dom_obj_select.asp
Il y a des exemples

Bon courage
Messages postés
59
Date d'inscription
mercredi 21 juin 2006
Statut
Membre
Dernière intervention
26 octobre 2015

Je récupère de mon ajax une adresse composée de 3 lignes adresses + le code postal; Donc 4 champs que je veux envoyer vers 4 champs présenté comme ceci :

Le format de sortie de l'ajax peut-être fait de n'importe quelle façon, donc si je dois le changer ce n'est pas un problème.

Je vais voir du côté du lien que tu m'as fournis.

Merci
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
31
Ok

Considerons que l'on a comme sortie de AJAX
strReponse = "Adresse1|Adresse2|Adresse3|ville";

tabAdresse = strReponse.split("|");
document.getElementById("ontact_adresse_1").value = tabAdresse[0];
...

Je pense que cela repond a ton probleme.

Le plus propre apres c'est que ton AJAX te reponde en JSON ou en XML.
Pour le code est un peu plus complexe. ;-)
Voila
Messages postés
59
Date d'inscription
mercredi 21 juin 2006
Statut
Membre
Dernière intervention
26 octobre 2015

Mon script ajax php est comme cela pour l'instant, je vais le modifier pour mettre en tableau le résultat.

header('Content-Type: text/xml; charset= ISO-8859-1');

if(!isset($param1)) $param1="";
{
    $inf = "<?xml version="1.0" encoding="iso-8859-1"?><racine>\n";

    // on fait la requête
    $queryString = "SELECT ent_adresse_1,ent_adresse_2, ent_adresse_3, id_ville
              FROM dk_entreprise
              WHERE id_entreprise='".$param1."'
              AND id_trt BETWEEN 1 AND 4";
    $requete= $MySql->queryOneRecord($queryString);

    $inf .= " ".$requete["ent_adresse_1"]." \n";
    $inf . = "".$requete["ent_adresse_2"]."\n";
    $inf .= " ".$requete["ent_adresse_3"]." \n";
    $inf . = "".$requete["id_ville"]."\n";
    $inf .= "</racine>";
    print $inf;
}
Messages postés
59
Date d'inscription
mercredi 21 juin 2006
Statut
Membre
Dernière intervention
26 octobre 2015

Bon voilà ce que ça fait dans mon script ajax/php

header('Content-Type: text/xml; charset=ISO-8859-1');

if(!isset($param1)) $param1="";
{
    $inf = "<?xml version="1.0" encoding="iso-8859-1"?><racine>\n";

    // on fait la requête
    $queryString = "SELECT ent_adresse_1,ent_adresse_2, ent_adresse_3, id_ville
              FROM dk_entreprise
              WHERE id_entreprise='".$param1."'
              AND id_trt BETWEEN 1 AND 4";
    $requete= $MySql->queryOneRecord($queryString);

    $inf .= "|".$requete["ent_adresse_1"]."|".$requete["ent_adresse_2"]."|".$requete["ent_adresse_3"]."|".$requete["id_ville"]."|";
    $inf.= "</racine>";
    print $inf;
}

Ensuite dans mon JS

 xmlhttp.open("GET","../ajax/ajaxAdrCtcEnt.php?param1="+param1.value,false);
    xmlhttp.send(null);
    // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
        if(xmlhttp.status == 200)
        {
            tabAdresse = xmlhttp.responseText;
            tabAdresse = tabAdresse.split("|");
            document.getElementById("contact_adresse_1").value = tabAdresse[1];
            document.getElementById("contact_adresse_2").value = tabAdresse[2];
            document.getElementById("contact_adresse_3").value = tabAdresse[3];
            document.getElementById("code_postal").value = tabAdresse[4];
        }

Tu parlais de xml, c'est à dire que ce n'est plus un tableau, mais plutot quelque chose comme ceci :

if(!isset($param1)) $param1="";
{
    $inf = "<?xml version="1.0" encoding="iso-8859-1"?><racine>\n";

    // on fait la requête
    $queryString = "SELECT ent_adresse_1,ent_adresse_2, ent_adresse_3, id_ville
              FROM dk_entreprise
              WHERE id_entreprise='".$param1."'
              AND id_trt BETWEEN 1 AND 4";
    $requete= $MySql->queryOneRecord($queryString);

    //$inf.=$requete["ent_adresse_1"];
    //$inf.=$requete["ent_adresse_1"];
    //$inf.=$requete["ent_adresse_1"];
    //$inf.=<codepostal>$requete["id_ville"]</codepostal>;
    $inf.= "</racine>";
    print $inf;
}

J'ai essayé, mais autant le tableau cela fonctionne, autant comme cela, cela ne va plus du tout.