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 :
onchange="com.value=this.options[this.selectedIndex].test, ajaxtext(), ajaxnuml()"
pour déclarer mon fichier js :
<script src="ajax.js" type="text/javascript"></script>
mon fichier ajax :
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
Partager