2 pb en javascript: Ajax et compatibilité ie
Fermé
Fidji56
Messages postés
58
Date d'inscription
vendredi 30 janvier 2009
Statut
Membre
Dernière intervention
26 mars 2010
-
18 janv. 2010 à 19:24
Fidji56 Messages postés 58 Date d'inscription vendredi 30 janvier 2009 Statut Membre Dernière intervention 26 mars 2010 - 23 janv. 2010 à 12:24
Fidji56 Messages postés 58 Date d'inscription vendredi 30 janvier 2009 Statut Membre Dernière intervention 26 mars 2010 - 23 janv. 2010 à 12:24
A voir également:
- 2 pb en javascript: Ajax et compatibilité ie
- Telecharger javascript - Télécharger - Langages
- 2 ecran pc - Guide
- Word numéro de page 1/2 - Guide
- France 2 uhd - Accueil - TV & Vidéo
- Whatsapp avec 2 cartes sim - Guide
14 réponses
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
18 janv. 2010 à 19:35
18 janv. 2010 à 19:35
Pb 1
essayes plutôt comme ça:
essayes plutôt comme ça:
<script type="text/javascript"> function getXMLHttpRequest() { var xhr = false; //créer une instance (un objet) de la classe désirée fonctionnant sur plusieurs navigateurs if (window.XMLHttpRequest) { // Mozilla, Safari,... xhr = new XMLHttpRequest(); if (xhr.overrideMimeType) { xhr.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 { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!xhr) { alert('Abandon :( Impossible de créer une instance XMLHTTP'); return false; } return xhr; } function Supprimer(id){ var xhr = getXMLHttpRequest(); // Voyez la fonction getXMLHttpRequest() définie dans la partie précédente xhr.open("GET", "supprimer.php?id=" + id + "", true); xhr.send(null); window.location.replace('modifier.php?id=<?php echo $_GET['id'];?>'); } </script>
Fidji56
Messages postés
58
Date d'inscription
vendredi 30 janvier 2009
Statut
Membre
Dernière intervention
26 mars 2010
18 janv. 2010 à 19:40
18 janv. 2010 à 19:40
Ca ne marche pas non plus :(
même si ca marche nickel sur mon serveur interne, sur 000webhost, pas moyen sous firefox...
même si ca marche nickel sur mon serveur interne, sur 000webhost, pas moyen sous firefox...
Fidji56
Messages postés
58
Date d'inscription
vendredi 30 janvier 2009
Statut
Membre
Dernière intervention
26 mars 2010
20 janv. 2010 à 18:10
20 janv. 2010 à 18:10
Ca ne m'arrive quasiment jamais, mais la, c'est assez urgent...
UP...
UP...
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
21 janv. 2010 à 13:41
21 janv. 2010 à 13:41
ça ne marche pas pour nous ça ne nous parle pas beaucoup.
Qu'est ce qui ne marche pas ?
as tu mis des traces, des alert pour voir si la fonction ajax est bien appelée ?
etc..
Qu'est ce qui ne marche pas ?
as tu mis des traces, des alert pour voir si la fonction ajax est bien appelée ?
etc..
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut!
Ce code fonctionne,
Mais pas celui là:
C'est étonnant!
Ce code fonctionne,
<script> function getXMLHttpRequest() { alert('1'); var xhr = false; //créer une instance (un objet) de la classe désirée fonctionnant sur plusieurs navigateurs if (window.XMLHttpRequest) { // Mozilla, Safari,... alert('2'); xhr = new XMLHttpRequest(); if (xhr.overrideMimeType) { alert('3'); xhr.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 { alert('4'); xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { alert('5'); xhr = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!xhr) { alert('Abandon :( Impossible de créer une instance XMLHTTP'); return false; } return xhr; } function Supprimer(id){ alert('6'); var xhr = getXMLHttpRequest(); // Voyez la fonction getXMLHttpRequest() définie dans la partie précédente alert('7'); xhr.open("GET", "supprimer.php?id=" + id + "", true); alert('8'); xhr.send(null); alert('9'); window.location.replace('modifier.php?id=<?php echo $_GET['id'];?>'); } </script>
Mais pas celui là:
<script> function getXMLHttpRequest() { var xhr = false; //créer une instance (un objet) de la classe désirée fonctionnant sur plusieurs navigateurs if (window.XMLHttpRequest) { // Mozilla, Safari,... xhr = new XMLHttpRequest(); if (xhr.overrideMimeType) { xhr.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 { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!xhr) { alert('Abandon :( Impossible de créer une instance XMLHTTP'); return false; } return xhr; } function Supprimer(id){ var xhr = getXMLHttpRequest(); // Voyez la fonction getXMLHttpRequest() définie dans la partie précédente xhr.open("GET", "supprimer.php?id=" + id + "", true); xhr.send(null); window.location.replace('modifier.php?id=<?php echo $_GET['id'];?>'); } </script>
C'est étonnant!
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
21 janv. 2010 à 18:49
21 janv. 2010 à 18:49
je vois que tu as mis plein d'alert alors ce sont lesquelles qui s'affichent ?
Fidji56
Messages postés
58
Date d'inscription
vendredi 30 janvier 2009
Statut
Membre
Dernière intervention
26 mars 2010
21 janv. 2010 à 19:44
21 janv. 2010 à 19:44
Il affiche: 6-1-2-3-4-5-7-8-9
(C'est normal qu'il affiche 6 en premier vue que je l'ai mis juste sous la déclaration de la fonction)
(C'est normal qu'il affiche 6 en premier vue que je l'ai mis juste sous la déclaration de la fonction)
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
21 janv. 2010 à 19:49
21 janv. 2010 à 19:49
ooui mais ça c'est les alert du script qui fonctionne, fais la même chose avec celui qui ne fonctionne pas
Fidji56
Messages postés
58
Date d'inscription
vendredi 30 janvier 2009
Statut
Membre
Dernière intervention
26 mars 2010
21 janv. 2010 à 19:50
21 janv. 2010 à 19:50
Celui qui ne fonctionne pas, c'est le même que celui qui fonctionne sauf qu'il n'y a pas les
alert
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
21 janv. 2010 à 19:54
21 janv. 2010 à 19:54
la je ne comprend plus si c'est le mêm script où est le problème ?
par contre mets
<script type="text/javascript">
par contre mets
<script type="text/javascript">
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
21 janv. 2010 à 20:00
21 janv. 2010 à 20:00
ha si j'ai vu, quand tu as les boites d'alert ça amèneune temporisation entre chaque "phase"
donc tu dois avoir un pb de syncro dans ton script.
function Supprimer(id){
var xhr = getXMLHttpRequest(); // Voyez la fonction getXMLHttpRequest() définie dans la partie précédente
xhr.open("GET", "supprimer.php?id=" + id + "", true);
xhr.send(null);
window.location.replace('modifier.php?id=<?php echo $_GET['id'];?>');
}
pourquoi as tu mis windows.location..... ??
AJAX te permet d'appeler un script php sans recharger la page et toi du fais recharger la page modif.php
donc supprimes cette ligne
donc tu dois avoir un pb de syncro dans ton script.
function Supprimer(id){
var xhr = getXMLHttpRequest(); // Voyez la fonction getXMLHttpRequest() définie dans la partie précédente
xhr.open("GET", "supprimer.php?id=" + id + "", true);
xhr.send(null);
window.location.replace('modifier.php?id=<?php echo $_GET['id'];?>');
}
pourquoi as tu mis windows.location..... ??
AJAX te permet d'appeler un script php sans recharger la page et toi du fais recharger la page modif.php
donc supprimes cette ligne
Fidji56
Messages postés
58
Date d'inscription
vendredi 30 janvier 2009
Statut
Membre
Dernière intervention
26 mars 2010
21 janv. 2010 à 20:02
21 janv. 2010 à 20:02
Bah ouais, mais je sais pas trop comment faire pour eviter de recharger la page :s
On peut, c'est vrai, afficher le contenu d'un fichier php, mais pour l'afficher en temps réel, je vois pas...
On peut, c'est vrai, afficher le contenu d'un fichier php, mais pour l'afficher en temps réel, je vois pas...
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
21 janv. 2010 à 21:31
21 janv. 2010 à 21:31
avec Ajax tu peux utiliser la partie
xhr.onreadystatechange = function() { traitementReponse(xhr); } //affectation fonction appelée qd on recevra la reponse
mets la ainsi:
ensuite tu cree une fonction js
ton script php reçoit l'élément a supprimer, il le supprime, il fait une nouvelle requette a ta base et par un echo renvoie la liste
quand Ajax reçoit la réponse, elle est ecrite dans la page dans le <div id="id_ecrire"> </div>
xhr.onreadystatechange = function() { traitementReponse(xhr); } //affectation fonction appelée qd on recevra la reponse
mets la ainsi:
function Supprimer(id){ var xhr = getXMLHttpRequest(); // Voyez la fonction getXMLHttpRequest() définie dans la partie précédente xhr.onreadystatechange = function() { traitementReponse(xhr); } //affectation fonction appelée qd on recevra la reponse xhr.open("GET", "supprimer.php?id=" + id + "", true); xhr.send(null); window.location.replace('modifier.php?id=<?php echo $_GET['id'];?>'); }
ensuite tu cree une fonction js
function traitementReponse(xhr){ var affich=""; if (xhr.readyState == 4) { if (xhr == 200) { // cas avec reponse de PHP en mode texte: var reponse=xhr.responseText; //c'est la réponse du script php alert(reponse); //TEST //ecrire la réponse dans la apge obj=document.getElementById('id_ecrire'); obj.innerHTML=reponse; } else { alert('Un problème est survenu avec la requête.'); } } }
ton script php reçoit l'élément a supprimer, il le supprime, il fait une nouvelle requette a ta base et par un echo renvoie la liste
quand Ajax reçoit la réponse, elle est ecrite dans la page dans le <div id="id_ecrire"> </div>
Fidji56
Messages postés
58
Date d'inscription
vendredi 30 janvier 2009
Statut
Membre
Dernière intervention
26 mars 2010
23 janv. 2010 à 12:24
23 janv. 2010 à 12:24
Salut,
Merci pour ton aide :p
Voici le code pour info:
A+
Merci pour ton aide :p
Voici le code pour info:
function getXMLHttpRequest() { var xhr = null; if (window.XMLHttpRequest || window.ActiveXObject) { if (window.ActiveXObject) { try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } } else { xhr = new XMLHttpRequest(); } } else { alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest..."); return null; } return xhr; } function Afficher(id){ var xhr = getXMLHttpRequest(); xhr.open("GET", "afficher.php?id=" + id + "", false); xhr.send(null); document.getElementById('album').innerHTML = xhr.responseText; } function Supprimer(id){ var xhr = getXMLHttpRequest(); // Voyez la fonction getXMLHttpRequest() définie dans la partie précédente xhr.open("GET", "supprimer.php?id=" + id + "", true); xhr.send(null); Afficher(<?php echo $_GET['id']; ?>); //window.location.replace('modifier.php?id=<?php echo $_GET['id'];?>'); }
A+