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 :

[AJAX] Génération de champs d'un formulaire


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 39
    Points
    39
    Par défaut [AJAX] Génération de champs d'un formulaire
    Bonjour,

    Je développe un logiciel de pointage dans lequel je fais une génération automatique de certains champs afin de renseigner les tâches effectuées...
    L'utilisateur entre d'abord un département, et je génère via AJAX la liste des tâches, et je génère ensuite d'autres champs selon la tâche sélectionnée...

    La génération se passe sans encombres, mais le problème vient de la récupération des données... Je n'arrive pas à retrouver mes "inputs"...

    Le getElementById ne veut rien savoir, et passer par le formulaire marche encore moins bien... Quelqu'un aurait une idée du problème ou bien je dois tout reprendre à zéro?

  2. #2
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    il faudrait voir ton code, car le debuggage n'est pas très efficace avec une description littéraire

    Ce que je peux te dire c'est que pour modifier un <form> via Ajax, tu ne peux pas te contenter d'une modification de innerHTML comme on le voit souvent.
    Tu dois passer par les syntaxes DOM ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 39
    Points
    39
    Par défaut
    oups c'est effectivement ce que j'avais fait... En fait je suis encore un débutant en Ajax... ^^'''

    Voilà le bout de code:
    les selects vides servent juste pour l'ergonomie de la page...


    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
    <SCRIPT language="javascript">
     
    var XmlHttp;
    var XmlHttp2;
     
    function getXmlHttpObject()
    {
    	var xmlhttpreq=null;
    	if(window.XMLHttpRequest)
    	{
    		xmlhttpreq = new XMLHttpRequest();
    	}
    	else if(window.ActiveXObject)
    	{
    		xmlhttpreq = new ActiveXObject("Microsoft.XMLHTTP");
    	}
    	else
    	{
    		alert("Votre navigateur ne supporte pas les HTTP Request, veuillez contacter votre administrateur (ou mettre à jour votre version de Firefox/Internet Explorer)");
    	}
    	return xmlhttpreq;
    }
     
    function refreshTasks(elt)
    {
    	if(elt.value!=0)
    	{
    		XmlHttp=getXmlHttpObject();
    		XmlHttp.onreadystatechange=stateChangedRefreshTasks;
    		XmlHttp.open("GET","MesTachesListeT.php?dpt="+elt.value,true);
    		XmlHttp.send(null);
    		//document.getElementById("volDur").innerHTML="&nbsp;";
    	}
    }
     
    function refreshVolDur(elt)
    {
    	if(elt.value!=0)
    	{
    		//préparation pour la durée
    		XmlHttp=getXmlHttpObject();
    		XmlHttp.onreadystatechange=stateChangedRefreshDur;
    		XmlHttp.open("GET","MesTachesDur.php?tache="+elt.value,true);
    		XmlHttp.send(null);
    		//préparation pour le volume
    		XmlHttp2=getXmlHttpObject();
    		XmlHttp2.onreadystatechange=stateChangedRefreshVol;
    		XmlHttp2.open("GET","MesTachesVol.php?tache="+elt.value,true);
    		XmlHttp2.send(null);
    	}
    }
     
    function stateChangedRefreshTasks()
    {
    	if(XmlHttp.readyState==4)
    	{
    		document.getElementById("tasks").innerHTML=XmlHttp.responseText;
    		document.getElementById("Dur").innerHTML='<select disabled><option value="0" /></select>';
    	}
    }
     
    function stateChangedRefreshDur()
    {
    	if(XmlHttp.readyState==4)
    	{
    		document.getElementById("Dur").innerHTML=XmlHttp.responseText;
    	}
    }
     
    function stateChangedRefreshVol()
    {
    	if(XmlHttp2.readyState==4)
    	{
    		document.getElementById("Vol").innerHTML=XmlHttp2.responseText;
    	}
    }
     
     
     
    <!-- un peu de code par là... -->
     
    <form action="" method="post" name="formAjout">
    <input type="hidden" name="listeTaches" value="<?php echo $listeTaches?>" />
    <tr class="smaller">
    <?php
    // sous-formulaire pour l'ajout d'une tâche
    echo '
            <td align="center">
                    <select name="cxDep" class="smaller" onChange=\'refreshTasks(this);\'>
                            <option value="0" />';
    $req=mysql_query("SELECT * FROM DEPARTEMENT;") or die("Récupération des départements: ".mysql_error());
    while($res=mysql_fetch_array($req))
    {
            echo '
                            <option value="'.$res["num_dep"].'">'.$res["nom_dep"].'</option>';
    }
    echo '
                    </select>
            </td>';
    ?>
    	<td align="center"><div id="tasks"><select disabled><option value="0"/></select></span></td>
    	<td align="center"><div id="Dur"><select disabled><option value="0" /></select></div></td>
    	<td align="center"><div id="Vol"><input type="text" name="volume" value="0" disabled /></div></td>
    	<td align="center"><input type="button" name="btnSubmit" value="ajouter" onClick="foncAjout();" /></td>
    </tr>
    </form>
     
    <!-- fin du code ici...-->

  4. #4
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    Je vois ...
    Et bien il ne te reste qu'à t'inspirer du lien que je t'ai donné ci-dessus pour adapter ton code (tes codes en fait : la réponse PHP devra être modifiée en conséquence)

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 39
    Points
    39
    Par défaut
    ok merci beaucoup

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

Discussions similaires

  1. probleme de génération de champs dans un formulaire
    Par aniss77 dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 20/11/2009, 10h37
  2. [AJAX] Garder les valeurs des champ d'un formulaire en mémoire
    Par joss91 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/04/2008, 09h56
  3. [AJAX] Vérification de champs de formulaire
    Par hash95 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/01/2008, 09h13
  4. [AJAX] Auto completion - plusieurs champs dans un formulaire
    Par etco1 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/09/2007, 17h36
  5. [AJAX] Tester les champs d'un formulaire avant de pouvoir l'envoyer
    Par italiasky dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 02/05/2007, 12h25

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