IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] Récupérer contenu d'une requête


Sujet :

AJAX

  1. #1
    Membre confirmé
    Homme Profil pro
    Informatique
    Inscrit en
    Mai 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2011
    Messages : 133
    Par défaut [AJAX] 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

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 139
    Par défaut
    L'ajax est un appel serveur depuis le javascript. Il connait forcément les paramètres que tu lui passes ...

  3. #3
    Membre confirmé
    Homme Profil pro
    Informatique
    Inscrit en
    Mai 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2011
    Messages : 133
    Par défaut
    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

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 139
    Par défaut
    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.

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Salut,

    Peut-on voir ton code?

    A+.

  6. #6
    Membre confirmé
    Homme Profil pro
    Informatique
    Inscrit en
    Mai 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2011
    Messages : 133
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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(",")

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 139
    Par défaut
    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 ...

  8. #8
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Re,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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();
    			}

  9. #9
    Membre confirmé
    Homme Profil pro
    Informatique
    Inscrit en
    Mai 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2011
    Messages : 133
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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);

  10. #10
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    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+.

  11. #11
    Membre confirmé
    Homme Profil pro
    Informatique
    Inscrit en
    Mai 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2011
    Messages : 133
    Par défaut
    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

  12. #12
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 139
    Par défaut
    Tu as visiblement une erreur avec ton Mailer

    http://www.developpez.net/forums/d72...e-champ-email/

  13. #13
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    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?

  14. #14
    Membre confirmé
    Homme Profil pro
    Informatique
    Inscrit en
    Mai 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2011
    Messages : 133
    Par défaut
    Pourtant si j'utilise bien un formulaire. Ouep je te mets ça desuite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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>

  15. #15
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    <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 : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" value="Send Newsletter" onclick="sendMail();"/>
    Et utilise mon code pour voir ce que retourne l'alert.

    A+.

  16. #16
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Regarde aussi ce tutoriel pour faire l'instanciation de xhr.

  17. #17
    Membre confirmé
    Homme Profil pro
    Informatique
    Inscrit en
    Mai 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2011
    Messages : 133
    Par défaut
    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

  18. #18
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Teste avec ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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"

  19. #19
    Membre confirmé
    Homme Profil pro
    Informatique
    Inscrit en
    Mai 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2011
    Messages : 133
    Par défaut
    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

  20. #20
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Les fonctions javascript et l'élément qui fait l'appelle de la fonction sont dans la même page
    Le confirm s'affiche?

Discussions similaires

  1. Réponses: 5
    Dernier message: 11/06/2020, 12h44
  2. Réponses: 5
    Dernier message: 04/03/2011, 08h18
  3. [AC-2003] Récupérer le contenu d'une requête "en dur" dans un recordset
    Par buzz73 dans le forum VBA Access
    Réponses: 1
    Dernier message: 29/07/2009, 20h12
  4. [AJAX] récupérer contenu d'une balise xml
    Par Braillane dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 27/06/2007, 08h08
  5. [VBA-E] Récupérer résultat d'une requête
    Par ragnarök dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/04/2006, 16h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo