Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/05/2011, 08h16   #1
Nouveau Membre du Club
 
Homme
Informatique
Inscription : mai 2011
Messages : 112
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Informatique
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 112
Points : 36
Points : 36
Par défaut Récupérer contenu d'une requête

Bonjour à tous et merci par avance de votre aide,

Je voulais savoir comment il était possible, ou bien S'IL était possible de récupérer le contenu d'une requête AJAX en PHP. J'y travaille dessus et je n'arrive pas à trouver mon problème.

Merci d'avance à vous
beber005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 08h51   #2
Membre habitué
 
Inscription : octobre 2009
Messages : 122
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 122
Points : 116
Points : 116
L'ajax est un appel serveur depuis le javascript. Il connait forcément les paramètres que tu lui passes ...
bewidia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 10h18   #3
Nouveau Membre du Club
 
Homme
Informatique
Inscription : mai 2011
Messages : 112
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Informatique
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 112
Points : 36
Points : 36
Je sais bien ça c'est juste que la page php ou le code php que j'ai ne veut pas reconnaitre le contenu de ma variable. sachant que ce que je souhaite faire est envoyer un mail
beber005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 10h26   #4
Membre habitué
 
Inscription : octobre 2009
Messages : 122
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 122
Points : 116
Points : 116
A part un problème de nommage de variables, je ne vois pas. Si ton serveur ne voit pas la variable transmise, c'est qu'elle n'est pas envoyée.
bewidia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 11h06   #5
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
Salut,

Peut-on voir ton code?

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 11h25   #6
Nouveau Membre du Club
 
Homme
Informatique
Inscription : mai 2011
Messages : 112
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Informatique
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 112
Points : 36
Points : 36
Code :
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
	//	Déclaration de l'objet xhr permettant l'envoi de requete au serveur
	var xhr = new ActiveXObject("Msxml2.XMLHTTP");	
	//	Cette fonction permet l'envoi automatique des mails
	//	aux personnes enregistrés dans la BD
	function sendMail()
		{		
			//alert(chaineContenantTabEmail);
			if(confirm("Etes vous sur de vouloir envoyer cette Newsletter ?"))
			{			
				//	Définition des modalités d'envoi de la requête
				xhr.open('post','email.php',true);
				//	Changer le type MIME de la requête avec la méthode setRequestHeader , sinon le serveur ignorera la requête 
				xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
				//	Envoi de la requete au serveur avec comme information les email destinataires
				alert("Email="+chaineContenantTabEmail);
				xhr.send("Email="+chaineContenantTabEmail);
				//window.close();
			}
		}
 
	//	Cette fonction permet le parcours du tableau et élimine les doublons qu'il contient
	function RemoveDupArray(a)
	{
		a.sort();
		for (var i = 1; i < a.length; i++)
		{
			if (a[i-1] === a[i])
			a.splice(i, 1);
		}
	}
/**********************************************************************************Fin Déclaration des FONCTIONS***************************************************************************************/
	<%
		set Conn2=Server.CreateObject("ADODB.Connection")'	connexion à la BD
			Conn2.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath ("db.mdb") & ";Persist Security Info=False"
		Set	RS_SC = server.CreateObject("ADODB.Recordset")%>
		//	Tableau associant un idCategory aux adresse mail qui y sont inscrites
		var variableId = new Array()
		//	Requête permettant de récupérer les email associé à une catégorie
		<%RS_SC.Open "SELECT SUBSCRIPTIONS_NEWSLETTER.idcategory,SUBSCRIPTORS_NEWSLETTER.email FROM SUBSCRIPTORS_NEWSLETTER,SUBSCRIPTIONS_NEWSLETTER WHERE SUBSCRIPTIONS_NEWSLETTER.idperson=SUBSCRIPTORS_NEWSLETTER.id;",Conn2,1,1%>
	<%
		Do While not RS_SC.eof	'	On boucle tant que le fichier n'est pas lu entièrement			
	%>	
		if(typeof(variableId[<%=RS_SC("idcategory")%>]) == 'undefined')
		{
			variableId.push([<%=RS_SC("idcategory")%>]);
			variableId[<%=RS_SC("idcategory")%>] = new Array();
		}
		else
		{
			variableId[<%=RS_SC("idcategory")%>].push('<%=RS_SC("email")%>');
		}
	<%
		RS_SC.movenext
		loop
	%>
 
	//	Tableau permettant de récupérer simplement les email en leurs associant un id quelconque
	var tabEmail = new Array()
 
	//	ident permet de parcourir tabTemporaire
	for(ident in opener.tabTemporaire)
	{
		//	identifiant all n'existe pas dans la BD
		//	s'il n'est pas renseigné alors on exécute la boucle
		if(ident != "all")
		{
			for(i = 0 ; i < variableId[ident].length ; i++)
			{			
				//	j'ajoute à la fin au tableau tabEmail les email associé à l'identifiant de la catégorie en cours
				tabEmail.push(variableId[ident][i]) ;	
			}			
		}
	}
	//alert(tabEmail);
	//	Utilisation de la fonction doublons
	RemoveDupArray(tabEmail);	
	//	Concaténation des éléments d’un tableau en une chaîne de caractères avec un séparateur qui est ici une virgule 
	var chaineContenantTabEmail = tabEmail.join(',');// équivalent à  chaineContenantTabEmail = tabEmail.join(",")
beber005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 11h47   #7
Membre habitué
 
Inscription : octobre 2009
Messages : 122
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 122
Points : 116
Points : 116
Je ne comprends pas ton code : tu fais appel a un script PHP et dans ton javascript tu inclues du code serveur qui n'est à priori pas du PHP (c'est de l'ASP ? Je connais pas, perso).

Sinon, dans ton script email.php, fais un print_r de ton $_POST pour vérifie que tu as bien ta variable email et son contenu avant de traiter quoi que ce soit ...
bewidia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 12h34   #8
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
Re,

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
if(confirm("Etes vous sur de vouloir envoyer cette Newsletter ?"))
			{			
				//	Définition des modalités d'envoi de la requête
				xhr.open('POST','email.php',true);
				//	Changer le type MIME de la requête avec la méthode setRequestHeader , sinon le serveur ignorera la requête 
				xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
				xhr.onreadystatechange= function () {
				  if (xhr.readyState==4){
				     if(xhr.status==200)
					{
						alert(xhr.responseText);
					}
				     else
					{
						alert("Status" + xhr.status);
					}
				}
			}
				//	Envoi de la requete au serveur avec comme information les email destinataires
				alert("Email="+chaineContenantTabEmail);
				xhr.send("Email="+chaineContenantTabEmail);
				//window.close();
			}
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 31/05/2011, 08h49   #9
Nouveau Membre du Club
 
Homme
Informatique
Inscription : mai 2011
Messages : 112
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Informatique
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 112
Points : 36
Points : 36
Merci pour ta réponse mais mon problème de vient pas de là j'avais déjà effectuer une condition comme tu m'as indiqué mais merci d'avoir cherché

Mais bon si quelqu'un pouvait comprendre ce qu'il ne marche pas je l'en remercie grandement d'avance. J'ai ma variable "email" que je passe en AJAX que je n'arrive pas à exploiter en PHP dont voici le code
Code :
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
if (isset($_POST['Email']))
{
	$tabStringExplode = explode(',',$_POST['Email']);
	print_r ($tabStringExplode);
	echo 'Email bien recuperer';
 
}
else
{
	echo 'marche pas ';
}
 
//	Crée un objet PHPmailer
$mail = new PHPmailer();
//	Fonction qui permet l'envoit de message via le serveur SMTP
$mail->IsSMTP();
$mail->SMTPDebug = 2; 
$mail->IsHTML(true);
//	Spécifie l'hôte (ou les hôtes)SMTP auquel il faut se connecter
$mail->Host='FR0-mailsmtp';
//	Numéro de port par défaut est 25
$mail->Port=25; 
//	Spécifie l'adresse de l'expéditeur
$mail->From='techdata.administration@airbus.com';
//	Ajout des destinataires
//$email_address=$_POST['Email'];
//$mail->AddAddress ("$email_address","adresses des destinataires");
//	Définit le sujet du mail
$mail->Subject='Newsletter Airbus documentation';
//	Pièce jointes qui permettent de structurer la newsletter
$mail->AddEmbeddedImage('ENTETE.gif', 'ENTETE.gif', 'ENTETE');
$mail->AddEmbeddedImage('BORDURE_haut.gif', 'BORDURE_haut.gif', 'BORDURE_haut');
$mail->AddEmbeddedImage('FOND_1px.gif', 'FOND_1px.gif', 'FOND_1px');
$mail->AddEmbeddedImage('BORDURE_bas.gif', 'BORDURE_bas.gif', 'BORDURE_bas');
$mail->AddEmbeddedImage('LOGO_AIRBUS.gif', 'LOGO_AIRBUS.gif', 'LOGO_AIRBUS');
//	Contient le corps du message à envoyer
//	Récupère la varaible contenu dans la page popup.asp
//echo $mail->Body=$_POST['bodyCorps'];
 
if(!$mail->Send())
{ 
	//Teste le return code de la fonction
	//Affiche le message d'erreur (ATTENTION:voir section 7)
	echo $mail->ErrorInfo;
}
else
{	  
	echo $mail->Body;
}
$mail->SmtpClose();
unset($mail);
beber005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 09h21   #10
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
Re,

1- Avex la façon dont tu initialises xhr, ça ne fonctionnera qu'avec Internet Explorer.
2- Avec la code que j'ai proposé, quel alert s'affiche et ça affiche quoi? car il se peut que la requête Ajax n'est même pas lancé (erreur javascript), la page n'est pas trouvée, erreur serveur ...

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 10h00   #11
Nouveau Membre du Club
 
Homme
Informatique
Inscription : mai 2011
Messages : 112
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Informatique
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 112
Points : 36
Points : 36
Ah ok mais vu que ça va être utilisé uniquement sur IE mais bon tu as raison mieux vaut prévenir que guérrir.

Beh aucun alert ne s'affiche en fait, l'appel à ma page PHP me retourne que cette phrase :

marche pas Language string failed to load: provide_address
beber005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 10h09   #12
Membre habitué
 
Inscription : octobre 2009
Messages : 122
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 122
Points : 116
Points : 116
Tu as visiblement une erreur avec ton Mailer

http://www.developpez.net/forums/d72...e-champ-email/
bewidia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 10h15   #13
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
Ben si aucun alert ne s'affiche c'est que la requête AJAX n'est pas lancé.
C'est normale si tu as ce message si tu appelles directement la page car aucun formulaire n'est soumis.
Peut-on voir comment tu appelles la fonction?
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 10h27   #14
Nouveau Membre du Club
 
Homme
Informatique
Inscription : mai 2011
Messages : 112
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Informatique
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 112
Points : 36
Points : 36
Pourtant si j'utilise bien un formulaire. Ouep je te mets ça desuite
Code :
1
2
3
4
5
6
7
<div id="bouton_send">
		<input type="submit" value="Send Newsletter" onclick="sendMail();"/>
		<input type="hidden" value="chaineContenantTabEmail"/>
		<!-- Cette Action sur le clic du bouton permet de quitter le preview-->
		<input type="button" value="Cancel" onclick="window.close();"/>
	</div>
</div>
beber005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 10h35   #15
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
Citation:
<input type="submit" value="Send Newsletter" onclick="sendMail();"/>
Avec un submit, ça va recharger la page, donc la requête Ajax sera abandonner.
Code html :
<input type="button" value="Send Newsletter" onclick="sendMail();"/>
Et utilise mon code pour voir ce que retourne l'alert.

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 10h40   #16
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
Regarde aussi ce tutoriel pour faire l'instanciation de xhr.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 10h45   #17
Nouveau Membre du Club
 
Homme
Informatique
Inscription : mai 2011
Messages : 112
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Informatique
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 112
Points : 36
Points : 36
Merci vraiment de ton aide ça m'énerve de pas trouver ^^.. Alors j'ai essayé avec ton code et le problème est que quand j'appui sur le bouton "send newsletter" rien ne se produit il n'y a plus l'appel de ma page PHP
beber005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 11h01   #18
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
Teste avec ce code:

Code :
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
function getXhr(){
	var xhr = null; 
	if(window.XMLHttpRequest) // Firefox et autres
	   xhr = new XMLHttpRequest(); 
	else if(window.ActiveXObject){ // Internet Explorer 
	   try {
				xhr = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
	}
	else { // XMLHttpRequest non supporté par le navigateur 
	   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
	   xhr = false; 
	} 
	return xhr
}
function sendMail()
	{		
		if(confirm("Etes vous sur de vouloir envoyer cette Newsletter ?"))
		{			
			var xhr = getXhr();
			xhr.open('POST','email.php',true);
			xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			xhr.onreadystatechange= function () {
				if (xhr.readyState==4){
					if(xhr.status==200)
					{
						alert(xhr.responseText);
					}
					 else
					{
						alert("Status" + xhr.status);
					}
				}
			}
			xhr.send("Email=test@gmail.com");
		}
	}
En utilisant un input type="button"
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 11h12   #19
Nouveau Membre du Club
 
Homme
Informatique
Inscription : mai 2011
Messages : 112
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Informatique
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 112
Points : 36
Points : 36
Ca change rien dès que je met le input en type button rien ne se produit quand je clic sur le bouton send. Si je met le input en type submit je retrouve le même message d'erreur mais d'après toi c'est car la requête est abandonnée. Là perso je sèche mais bon laisse tomber te prends pas la tête si tu trouves pas faudra que je me creuse l'esprit
beber005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 11h18   #20
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
Les fonctions javascript et l'élément qui fait l'appelle de la fonction sont dans la même page
Le confirm s'affiche?
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h11.


 
 
 
 
Partenaires

Hébergement Web