Ajax probleme de code
Résolu
togodo
Messages postés
155
Statut
Membre
-
togodo Messages postés 155 Statut Membre -
togodo Messages postés 155 Statut Membre -
Bonjour,
je voudrais savoir ce qui ne vas pas dans le code suivant.
En local ça ne marche pas et avec un serveur apache local non-plus.
PS : Je suis newBie, je dois faire un mini-rapport sur l'Ajax pour un prof mais c'est pas ma spécialité les langages Internet à vrai dire.
Pour IE :
var requeteAjax = new ActiveXObject('Microsoft.XMLHTTP');
requeteAjax.open('GET','data.txt',false);
requeteAjax.send(null);
alert(requeteAjax.reponseText);
document.write("<div ID='Reponse' style='position: absolute;top:40px;left:10px'>")
document.write(requeteAjax.reponseText);
document.write("</div>")
var div1=document.getElementById('Reponse');
div1.innerHTML= "Youpie"
$('Pseudo').innerHTML="123"
function $(id)
{
return document.getElementById(id);
}
Et pout FF :
var requeteAjax = new XMLHtppRequest();
requeteAjax.open('GET','./data.txt',false);
requeteAjax.send(null);
document.write("<div ID='Reponse' style='position: absolute;top:40px;left:10px'>")
document.write(requeteAjax.reponseText);
document.write("</div>")
var div1=document.getElementById('Reponse');
div1.innerHTML= "Youpie"
$('Pseudo').innerHTML="$$$$$$$$$$$$$$"
function $(id)
{
return document.getElementById(id);
}
PS: Mon problème vient de l'objet "requeteAjax"
Merci
je voudrais savoir ce qui ne vas pas dans le code suivant.
En local ça ne marche pas et avec un serveur apache local non-plus.
PS : Je suis newBie, je dois faire un mini-rapport sur l'Ajax pour un prof mais c'est pas ma spécialité les langages Internet à vrai dire.
Pour IE :
var requeteAjax = new ActiveXObject('Microsoft.XMLHTTP');
requeteAjax.open('GET','data.txt',false);
requeteAjax.send(null);
alert(requeteAjax.reponseText);
document.write("<div ID='Reponse' style='position: absolute;top:40px;left:10px'>")
document.write(requeteAjax.reponseText);
document.write("</div>")
var div1=document.getElementById('Reponse');
div1.innerHTML= "Youpie"
$('Pseudo').innerHTML="123"
function $(id)
{
return document.getElementById(id);
}
Et pout FF :
var requeteAjax = new XMLHtppRequest();
requeteAjax.open('GET','./data.txt',false);
requeteAjax.send(null);
document.write("<div ID='Reponse' style='position: absolute;top:40px;left:10px'>")
document.write(requeteAjax.reponseText);
document.write("</div>")
var div1=document.getElementById('Reponse');
div1.innerHTML= "Youpie"
$('Pseudo').innerHTML="$$$$$$$$$$$$$$"
function $(id)
{
return document.getElementById(id);
}
PS: Mon problème vient de l'objet "requeteAjax"
Merci
A voir également:
- Ajax probleme de code
- Code ascii - Guide
- Code puk bloqué - Guide
- Code de déverrouillage oublié - Guide
- Code activation windows 10 - Guide
- Scanner qr code pc - Guide
6 réponses
Je refais un petit up.
Mon but n'est pas d'utiliser du phpmais simplement de l'Ajax donc du Javascript....
Je veux simplement savoir ce qui ne vas pas dans mon code????
Mon but n'est pas d'utiliser du phpmais simplement de l'Ajax donc du Javascript....
Je veux simplement savoir ce qui ne vas pas dans mon code????
Ce qui ne va pas dan ston code:
tu fais deux scripts, un pour FF l'autre pour IE
il faut tout mettre dans le même script comme fait au début de mon exemple ou on teste quel est le navigateur utilisé par le client:
ensuite le principe d'Ajax c'est d'appeler le serveur pour avoir une réponse sans recharger la page, pas d'écrire qq chose qui est déja dans la fonction ("Youpi" )
il faut que dans ta page tu ai déja le <div id='reponse'></div>
et c'est la que ajax va venir ecrire par innerHTML
donc ajax va appeler la page data.tx et son contenu sera écrit dans le div
tu fais deux scripts, un pour FF l'autre pour IE
il faut tout mettre dans le même script comme fait au début de mon exemple ou on teste quel est le navigateur utilisé par le client:
//créer une instance (un objet) de la classe désirée fonctionnant sur plusieurs navigateurs
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType('text/xml');//un appel de fonction supplémentaire pour écraser l'en-tête envoyé par le serveur, juste au cas où il ne s'agit pas de text/xml, pour certaines versions de navigateurs Mozilla
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
ensuite le principe d'Ajax c'est d'appeler le serveur pour avoir une réponse sans recharger la page, pas d'écrire qq chose qui est déja dans la fonction ("Youpi" )
il faut que dans ta page tu ai déja le <div id='reponse'></div>
et c'est la que ajax va venir ecrire par innerHTML
donc ajax va appeler la page data.tx et son contenu sera écrit dans le div
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
function makeRequest(url,nom_champ_poste,id_lire,id_ecrire){ var http_request = false; //créer une instance (un objet) de la classe désirée fonctionnant sur plusieurs navigateurs if (window.XMLHttpRequest) { // Mozilla, Safari,... http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { http_request.overrideMimeType('text/xml');//un appel de fonction supplémentaire pour écraser l'en-tête envoyé par le serveur, juste au cas où il ne s'agit pas de text/xml, pour certaines versions de navigateurs Mozilla } } else if (window.ActiveXObject) { // IE try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!http_request) { alert('Abandon :( Impossible de créer une instance XMLHTTP'); return false; } http_request.onreadystatechange = function() { traitementReponse(http_request,id_ecrire); } //affectation fonction appelée qd on recevra la reponse // lancement de la requete http_request.open('POST', url, true); //changer le type MIME de la requête pour envoyer des données avec la méthode POST , !!!! cette ligne doit etre absolument apres http_request.open('POST'.... http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); obj=document.getElementById(id_lire); data=nom_champ_poste+"="+obj.value; http_request.send(data); } function traitementReponse(http_request,id_ecrire) { var affich=""; if (http_request.readyState == 4) { if (http_request.status == 200) { // cas avec reponse de PHP en mode texte: //chargement des elements reçus dans la liste var affich_list=http_request.responseText; //alert(affich_list); obj = document.getElementById(id_ecrire); obj.innerHTML = affich_list; } else { alert('Un problème est survenu avec la requête.'); } } }et l'appel de la fonction:
<html> <form > <!-- le onChange dans la liste appelle le script Javascript Ajax en lui passant les arguments attendus --> <select name="liste1" onChange="makeRequest('reponsePhp_Ajax.php','selection_liste','liste1','id_reponse');"> <option value="A">A</option> <option value="B">B</option> <option value="C">C</option> </select> </form> </html> et dans le script php appele: reponsePhp_Ajax.php <?php $selection_liste=$_POST['selection_liste']; //ton traitement par exemple lecture dans une BDD Mysql $reponse="blabla"; //et l'envoi de la réponse: echo $reponse; ?>