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

AJAX Discussion :

[AJAX] affichage champs a partir de liste deroulante


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 17
    Par défaut [AJAX] affichage champs a partir de liste deroulante
    Bonjour,

    voila, pour l'affichage d'information sur mon formulaire, j'utilise un peu d'ajax.
    En faite l'utilisateur fait son choix dans une liste déroulante incrémenté par la base mysql. Une fois le choix effectué cela renseigne des champs textarea en rapport avec ce choix sur le formulaire.
    Alors au niveau de la liste déroulante j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onchange="com.value=this.options[this.selectedIndex].test, ajaxtext(), ajaxnuml()"
    pour déclarer mon fichier js :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script src="ajax.js" type="text/javascript"></script>
    mon fichier ajax :
    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
    var xhr = null;
    // Fonction de creation de l'objet XMLHttpRequest qui resservira pour chaques fonctions AJAX
    function getXhr()
    { 
    if(window.XMLHttpRequest) xhr = new XMLHttpRequest();
    else if(window.ActiveXObject)
    { 
    try
    {
    	xhr = new ActiveXObject("Msxml2.XMLHTTP"); 
    }
    catch (e)
    {
    	xhr = new ActiveXObject("Microsoft.XMLHTTP");
    	}
    }
    else
    {
    	alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest, veuillez le mettre à jour");
    	xhr = false;
    	}
    	} 
    function ajaxtext()
    	{ 
    	getXhr(); 
    	xhr.onreadystatechange = function() 
    	{ 
    	if(xhr.readyState == 4 && xhr.status == 200) { 
    	// Nous recuperons ce coup ci le retour dans une variable
    	var chain = xhr.responseText;
    // Nous decoupons la reponse selon le caractere choisi 
    var tablo = chain.split('£');
     
    // Nous appliquons les valeurs récupérées au element correspondant 
    document.getElementById('com_p').value = tablo[0]; 
    }
    }
    xhr.open("POST",'ajaxrecuptext.php',true);
    xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    numl = document.getElementById('numl').value; 
    xhr.send("numl="+numl);
    } 
     
    function ajaxnuml()
    	{ 
    	getXhr(); 
    	xhr.onreadystatechange = function() 
    	{ 
    	if(xhr.readyState == 4 && xhr.status == 200) { 
    	// Nous recuperons ce coup ci le retour dans une variable
    	var chaine = xhr.responseText;
    // Nous decoupons la reponse selon le caractere choisi 
    var tableau = chaine.split('£');
     
    // Nous appliquons les valeurs récupérées au element correspondant 
    document.getElementById('urgence').value = tableau[0]; 
    }
    }
    xhr.open("POST",'ajaxrecupurg.php',true);
    xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    numl = document.getElementById('numl').value; 
    xhr.send("numl="+numl);
    }

    donc j'ai tester sous ie et firefox mais ça ne marche pas au 2 endroits.
    Mais il réagisse différemment, je voulais voir si il passais bien par les fonctions ajaxnuml() et ajaxtext() alors j'ai mis des alert juste avant getXhr(); . Et la sous ie, cela m'indique bien qu'il est passé par les deux fonctions et il affiche bien les renseignements, mais lorsque j'enlève les alert rien ne s'affiche. Pour firefox, il m'indique juste qu'il est rentré dans la première fonction et rien ne s'affiche. si je met le alert après le getXhr(), cela ne fonctionne pas, même sous ie.
    Voila, j'espère que vous avez compris mon problème et que vous pourrez m'aidez.

    merci d'avance

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Salut,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onchange="com.value=this.options[this.selectedIndex].text; ajaxtext(); ajaxnuml()"

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 17
    Par défaut
    ok donc j'ai changer les , en ; et concernant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    com.value=this.options[this.selectedIndex].test;
    je n'ai pas modifier, car en faite ensuite j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option test="<?php echo($ligne['commentaire_p']); ?>" value="<?php echo($ligne['matricule_lieux']); ?>"><?php echo($ligne['nom'].$ligne['gc']); ?></option>
    . Mais pour cette parti la cela fonctionne bien.

    Donc concernant les ; que j'ai modifier cela marche si je met les alert, de la même manière que cité dans mon post précédemment, mais sinon cela m'affiche que pour un champ au lieu de 2, et aléatoirement a priori. Et pour firefox, rien de nouveau, rien ne fonctionne.

    merci

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Essaie de mettre tout simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(xhr.responseText)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 17
    Par défaut
    alors j'ai essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(xhr.responseText)
    cela ne marche que pour ajaxnuml(), mais parfois ça affiche aussi les commentaire dans l'autre champs. Mais si je rajoute les alert cela fonctionne.
    ça me donne vraiment l'impression d'un conflit entre les 2, vu que cest un peu aléatoire l'affichage

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Passe en mode synchrone alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.open("POST",'ajaxrecuptext.php',false);...

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/11/2006, 10h24
  2. Réponses: 3
    Dernier message: 26/09/2006, 11h06
  3. Réponses: 2
    Dernier message: 26/07/2006, 11h00
  4. Réponses: 5
    Dernier message: 10/05/2006, 21h39
  5. prob d'affichage de donnée d'1 liste deroulante
    Par zorba49 dans le forum ASP
    Réponses: 5
    Dernier message: 26/08/2005, 14h39

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