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

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 17
    Points : 6
    Points
    6
    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
    Points : 15 059
    Points
    15 059
    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
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 17
    Points : 6
    Points
    6
    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
    Points : 15 059
    Points
    15 059
    Par défaut
    Essaie de mettre tout simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(xhr.responseText)

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 17
    Points : 6
    Points
    6
    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
    Points : 15 059
    Points
    15 059
    Par défaut
    Passe en mode synchrone alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.open("POST",'ajaxrecuptext.php',false);...

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    trop bien ça marche.
    et j'ai regarder sur le site pour comprendre et c'est bon j'ai compris. merci.
    par contre pourquoi cela ne fonctionne pas du tout sur firefox ? même mon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    com.value=this.options[this.selectedIndex].test;
    ne fonctionne pas

  8. #8
    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
    Points : 15 059
    Points
    15 059
    Par défaut
    Utilise title à la place de test.

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    ok cette parti la marche sur firefox, mais pourquoi avec test il ne voulait pas ?
    par contre pour ajaxtext(); ajaxnuml(), cela fonctionne très bien sur ie mais sur firefox rien ne s'affiche.
    merci

  10. #10
    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
    Points : 15 059
    Points
    15 059
    Par défaut
    Parceque test n'est pas un attribut standard mais que tu l'as inventé.
    Pourquoi ne pas utiliser title comme je te l'ai proposé car je vois que c'est un commentaire que tu mets là.
    $ligne['commentaire_p']

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    oui, c bon, je l'ai fait, mais s'il y en a plusieurs comment fait on ? (pas dans mon cas présenté, c'est une autre fenêtre).

    par contre quand je disais que ça marchais pas sous firefox c'était au sujet de ajaxtext(); ajaxnuml(). Cela ne m'affiche rien du tout, alors que ie cela fonctionne.

    merci

  12. #12
    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
    Points : 15 059
    Points
    15 059
    Par défaut
    Modifie ton séparateur "£", Sinon installe Firebug

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