Ajax

Fermé
layeures Messages postés 286 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 22 juin 2018 - 28 sept. 2009 à 12:31
layeures Messages postés 286 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 22 juin 2018 - 29 sept. 2009 à 17:46
Bonjour,

j ai reussie a faire un script qui envoie les donnee grace au code ajax
mes probleme dans la deuxieme page je n arrive pas a recuperer les variable envoyer
voici le code

:::::::::::::::::::
<script type='text/JavaScript'>
function go(){

var xhr_object = null;

if(window.XMLHttpRequest) // Firefox
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
var url = "test.php";
var dede = "ca marche";
var pos="variable1=coco&variable2=coco2";
xhr_object.open("POST", url, false);
xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=iso-8859-1");
xhr_object.send(pos);

if(xhr_object.readyState == 4 && xhr_object.status == 200){
alert("Requête effectuée !");
alert(xhr_object.responseText);
}
else {

alert("Requête NON effectuée !");
}
}
</script>
//////////////////////////////
test.php
***************
<?php

$az = $_POST['variable1'];
echo $az;
?>

merci de votre aide
MERCI INFINIMENT DE VOTRE AIDE

20 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
28 sept. 2009 à 17:06
Essayes comme ça:

tu devrait au moins avoir la boite d'alerte Data envoyée: .....

<script type='text/JavaScript'>
function go(){

var xhr_object = null;

	if(window.XMLHttpRequest){ // Firefox
			xhr_object = new XMLHttpRequest();
	}else if(window.ActiveXObject){ // Internet Explorer
		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	}else { // XMLHttpRequest non supporté par le navigateur
		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
		return;
	}
	var url = "test.php";
	var dede = "ca marche";
	var pos="variable1=coco&variable2=coco2";
	//xhr_object.open("POST", url, false);
	xhr_object.open("POST", url, true);
	//xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=iso-8859-1");
	xhr_object.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	alert ("Data envoyées: "+pos);
	xhr_object.send(pos);

	if(xhr_object.readyState == 4 && xhr_object.status == 200){
		alert("Requête effectuée !");
		alert(xhr_object.responseText);
	}else {

		alert("Requête NON effectuée !");
	}
}
</script>
0
layeures Messages postés 286 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 22 juin 2018 3
28 sept. 2009 à 17:30
je vai essayer est ca ne marche pas
0
layeures Messages postés 286 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 22 juin 2018 3
28 sept. 2009 à 17:37
quand je mes xhr_object.open("POST", url, true);
ca m affiche requete non effectue
donc je les mis a false
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
28 sept. 2009 à 19:09
Si mis à TRUE , l'exécution de la fonction JavaScript se poursuivra en attendant l'arrivée de la réponse du serveur.
Si mis à FALSE alors synchrone(bloquant), sans réponse le script est bloqué !


la reponse que tu as est celle de la condition:

if(xhr_object.readyState == 4 && xhr_object.status == 200){ non execiutée

donc la requette part bien mais tu n'as pas ma réponse

ton script php est bien dans le même dossier que ta page qui contient le script ajax ?

as tu modifié l'autre ligne ('content type ...


0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
layeures Messages postés 286 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 22 juin 2018 3
28 sept. 2009 à 20:22
j ai fait exatement comme tu me la dit est ca ne marche pas
les deux fichier ce trouve dans le meme dossier
je ne comprend rien.
0
layeures Messages postés 286 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 22 juin 2018 3
28 sept. 2009 à 20:27
ca me mes requete non effectuer et la variable ne s affiche pas
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
28 sept. 2009 à 20:55
comme ça ça marche

attention il ya un ordre a respecter previosn traitement d ela réponse avant de faire l'envoi, ensuite j'ai modifie un peu l'initialisationn de la request et séparé la fonction traitement de la réponse

chez moi ça marche ainsi:

<script type='text/JavaScript'>
function go(){

var xhr_object = false;

	//créer une instance (un objet) de la classe désirée fonctionnant sur plusieurs navigateurs
        if (window.XMLHttpRequest) { // Mozilla, Safari,...
            xhr_object = new XMLHttpRequest();
            if (xhr_object.overrideMimeType) {
                xhr_object.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_object = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

        if (!xhr_object) {
            alert('Abandon :( Impossible de créer une instance XMLHTTP');
            return false;
        }
		  
	var url = "test.php";
	var dede = "ca marche";
	var pos="variable1=coco&variable2=coco2";
//cette ligne avant la partie open et send !!
	xhr_object.onreadystatechange = function() {traitementReponse(xhr_object); }

	xhr_object.open("POST", url, true);
	xhr_object.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	alert ("Data envoyées: "+pos);

	xhr_object.send(pos);
}
////fonction traitement de la réponse
function traitementReponse(xhr_object) {
	var affich="";
	if (xhr_object.readyState == 4) {
		if (xhr_object.status == 200) {
					// cas avec reponse de PHP en mode texte:
			// elements reçus
			var reponse=xhr_object.responseText;
			alert(reponse);
				
		} 
		else {
                alert('Un problème est survenu avec la requête.');
        }
    }
}
</script>
<a href="javascript:go();">essai</a>
0
layeures Messages postés 286 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 22 juin 2018 3
28 sept. 2009 à 21:10
merci de l'interet que tu porte a mon probleme
pour le moment je ne peu pas continue a rester devant mon ordi car sinon je vait devenir fou
alors si t est d'acord rendez vous demain pour resoudre le probleme

dit moi ta variable php $POST[var] elle s'affiche dans ta deuxieme page
0
layeures Messages postés 286 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 22 juin 2018 3
29 sept. 2009 à 09:50
salut

j ai tester un deuxieme foie le code est ca ne marche pas.
0
layeures Messages postés 286 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 22 juin 2018 3
29 sept. 2009 à 10:02
je trouve ca bizarre quand je execute le code ajax il me mes

Détails de l’erreur de la page Web

Agent utilisateur : Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6; InfoPath.2)
Horodateur : Tue, 29 Sep 2009 08:00:46 UTC


Message : Accès refusé.

Ligne : 38
Caractère : 2
Code : 0
URI : file:///C:/wamp/www/ajax%20test/Copie%20de%20ajax.html


Message : Accès refusé.

Ligne : 38
Caractère : 2
Code : 0
URI : file:///C:/wamp/www/ajax%20test/Copie%20de%20ajax.html


Message : Accès refusé.

Ligne : 38
Caractère : 2
Code : 0
URI : file:///C:/wamp/www/ajax%20test/Copie%20de%20ajax.html
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
29 sept. 2009 à 10:19
C'est normal sur IE si pour lancer une page html tu cliques sur le nom dans l'explorateur, IE bloque l'accès à javascript , tu dois avoir une fenêtre ou qq chose pour autoriser le script

pour faire tes test il te faut un serveur, pour pouvoir ensuite executer le php

si tu ne l'as pas, télécharges et installes wamp sur ton PC

et pour test un script tu tapes dans la barre d'adresse de ton navigateur

http://127.0.0.1/nom_de_ton_script.html

wamp doit être lancé avant bien sur
0
layeures Messages postés 286 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 22 juin 2018 3
29 sept. 2009 à 10:44
salut
c est ce que je fessai debut le debut j'executer la page sur mon serveur local avec WAMPSERVEUR
puis j ai voulu teste diretement sans le serveur est ca ma mis erreur acces refuser.
mes quand j'excuter la page coter serveur ca ne m'affiche pas ce message mes ca ne marche pas quand meme car la variable n etait pas envoyer car elle ne s'affiche pas dans la deuxieme page.
0
layeures Messages postés 286 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 22 juin 2018 3
29 sept. 2009 à 11:01
le probleme vien peu etre de la configuration de mon serveur ?????????????
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
29 sept. 2009 à 13:27
la variable n etait pas envoyer car elle ne s'affiche pas dans la deuxieme page.

Le principe d'Ajax est justement de ne pas recharger la page donc pas de deuxième page

Principe:
- dans une page 1 html par un lien ou un bouton tu lances le script javascript/Ajax
- ce dernier appelle en "arriere plan" sans rechargement de la page un script php sur le serveur
- en lui passsant un ou plusieurs parametres (variable1 variable2 dans ton cas)
- le script php récupere ces valeurs
- fait un traitement (dans ton cas juste un echo de la valeur reçue)
- lorsque le navigateur reçoit la réponse , le script javascript/Ajax par xhlr_object.onreadystaechange=
lance une fonction qui traite la réponse

dans ton cas c'est juste une boite d'alert donc une boite de dialogue javascript qui te dit la réponse, mais tu peux faire écrire la réponse a un endroit précis de la page1, dans un <div id="reponse"></div>
par

document.GetElementById('reponse').innerHTML=xhr_object.responseText;
0
layeures Messages postés 286 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 22 juin 2018 3
29 sept. 2009 à 14:02
moi ce que je veu c est envoyer la var a la deuxieme page est l'afficher avec echo $_POST['variable1'];
ce probleme va me rendre fou
0
layeures Messages postés 286 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 22 juin 2018 3
29 sept. 2009 à 14:04
je ten suplie par pitie aide moi
pitie pitie
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
29 sept. 2009 à 14:18
alors si tu veux envoyer une valeur a une autre page, tu n'as pas besoin de Ajax
il te faut un formulaire pour pouvoir le faire en méthode POST

page1.html
<html>
<form name="form1" method="post" action="test.php">
<input type="text" name="variable1" value="coco"><br />
<input type="submit" name="envoyer" value="Vers test"><br />


</form>
</html>


et test.php
<?php

$az = $_POST['variable1'];
echo 'La valeur reçue est :'.$az;
?> 
0
layeures Messages postés 286 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 22 juin 2018 3
29 sept. 2009 à 14:26
le probleme c est que je suis obliger d'utiliser ajax car avec ajax il m affiche une reponse si les donnee ont etait envoyer ou pas et en php ca c est pas possible enfin je croie.
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
29 sept. 2009 à 15:34
La je ne te suis pas trop, je ne vois pas ce que tu cherches à faire

- en utilisant AJAX, on envoie les données et on affiche la réponse du script php dans la m^me page sans avoir besion d'afficher une autre page


- en php on envoie les données vers un script php celui de action="...." du formulaire et ce script charge une nouvelle page dans laquelle il peut mettre la réponse
si tu fais l'essai avec les bouts de code que je viens de te donner tu verra bien que c'est possible
0
layeures Messages postés 286 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 22 juin 2018 3
29 sept. 2009 à 17:46
si je suis interesser par ajax c est que ajax dans la premier page il affiche le resultat des envoie des donnee
alors avec php c est pas possible

ajax dans la premier page affiche si les donnee en etait envoyer
voila pourquoi je me case la tete a essayer de fait un script d'envoie de donnee en ajax et pas php
0