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] AJAX- POST - PHP


Sujet :

AJAX

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2006
    Messages : 113
    Points : 49
    Points
    49
    Par défaut [AJAX] AJAX- POST - PHP
    Bonjour

    Je connais quelques difficultés avec AJAX. Concrêtement, j'ai deux problèmes :

    Le 1er prob, c'est en utilisant, la méthode POST, pour ouvrir une communication assynchrone.

    Quand j'exécute mon fichier.html avec IE8, il me met une erreur javascript,

    Note : Erreur non spécifié, c'est la ligne du setRequestHeader("Content-Type","application/x-www-form-urlencoded");

    Tandis que avec Firefox, il n'y a pas d'erreur. Je précise qu'avec la méthode GET, je n'est pas de soucis, tout fonctione.

    Voici le code du fichier ajax-php-post.html

    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
    	"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="FR">
    	<head>
    		<title>Ajax-php-POST</title>
    		<script type="text/javascript" src="creation-requete-ajax.js"></script>
     
     
    			<!-- Style de la div -->
    		<style type="text/css">
    			#maDiv{
    				background-color:yellow; 
    				with:200pt;
    			}
    		</style>
     
    		<!-- Script AJAX qui récupère un fichier text est le met dans une div -->
    		<script type="text/javascript">
    			function getResponseText(){
     
    					//Création de requête HTTP
    				var requeteHTTP = creerRequeteAjax(); 
     
    					//Si requête créée correctement
    				if(requeteHTTP){
     
    						//Positionnement sur le champ titre 				
    					var oTitre = document.getElementById("idTitre");
    						//Récupérer la valeur du champ titre 
    					oTitre = oTitre.value;
     
    						//Positionnement sur la dv 				
    					var oDiv = document.getElementById("maDiv");
     
    						//Définir la méthode d'envoie de la requeête et le type de communication
    					requeteHTTP.open('POST','ajax-php-post.php',true);
    						//Appel de la fonction callback, lorsque que le serveur renvoie une réponse
    					requeteHTTP.onreadystatechange = function () {
    							//Test l'état d'avacement de la requête et les ressouces disponibles 
    						if((requeteHTTP.readyState == 4) && (requeteHTTP.status == 200)){
    								//Modifier le contenu de la DIV 
     
    								//Définir l'entête HTTP
    						requeteHTTP.setRequestHeader("Content-Type","application/x-www-form-urlencoded");								//Modifier la valeur de la div 								
    							oDiv.innerHTML = requeteHTTP.responseText; 
    						}
    					}
     
    						//Définir les paramètres du send 
    					var params = "titre=" + oTitre;
    				             params = escape(params);
    						//Envoie de la requête 
    					requeteHTTP.send(params);
    				}	
    			}
    		</script>		
    	</head>
    	<body>
    		<h1>REQUET AJAX AVEC PHP </h1>
    		<h2>Utilisation responseTexte avec un fichier php</h2>
    		<h4>Méthode POST</h4>
    		<div id="maDiv">
    		<form form="frmTest">
    			<input id="idTitre" name="txtTitre" type="text" size="10"/>
    			<input name="bttGo" type="button" value="GO" onclick="getResponseText();"/>
    		</form>
    		</div>
    	</body>
    </html>
    J'ai essayé aussi encodeURIComponent à la place de escape, j'ai essayé aussi de mettre un charset dans le setRequestHeader(), mais ça ne change rien.


    2ème problème dans le fichier ajax-php-post.php

    Je ne n'arrive pas à récupérer, le paramètre que j'envoie dans le send, avec Firefox,
    Je voudrais le récupérer avec $_POST mais ça ne fonctionne pas.

    J'ai une erreur php :

    Notice: Undefined index: titre in C:\wamp\www\AJAX\6-ajaxPHP\php_ajax\method_POST\ajax-php-post.php on line 5

    , pourtant le paramètre d'envoie se nomme titre, il ne le reconnait pas, quel est le problème


    Fichier ajax-php-post.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    <?php
         $titre = $_POST["titre"];
    ?>

    J'ai vraiment besoin de vos compétences, car il y a des choses que je ne saisie pas, je tourne en rond et ça devient la prise de tête, donc ça serait cool, c'est quelqu'un pourrait répondre à mes questions.

    Un grand merci

    dav79

  2. #2
    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
    Points : 15 059
    Points
    15 059
    Par défaut


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    requeteHTTP.onreadystatechange = function () {
    	//Test l'état d'avacement de la requête et les ressouces disponibles 
    	if((requeteHTTP.readyState == 4) && (requeteHTTP.status == 200)){
    		oDiv.innerHTML = requeteHTTP.responseText; 
    	}
    }
    requeteHTTP.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
         $titre = $_POST["titre"];
         echo "tittre :".$titre;
    ?>

    A+.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2006
    Messages : 113
    Points : 49
    Points
    49
    Par défaut
    Merci, Andry.aime, pour ton aide précieuse.

    En effet, j'ai fait une grosse erreur, que je n'est pas peu détecter, je débute avec AJAX, et j'ai tout à apprendre.

    Désolé, j'ai un peu tardé pour te répondre. Je mets tout de suite, la mention résolu pour ce poste.

    Je te souhaite une bonne journée

    dav79

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] ajax et script php
    Par lekonquerant dans le forum AJAX
    Réponses: 3
    Dernier message: 09/09/2009, 18h19
  2. [AJAX] Ajax encodeuri et php utf8_decode
    Par senacle dans le forum AJAX
    Réponses: 7
    Dernier message: 17/03/2009, 13h13
  3. [AJAX] [AJAX/PHP] récupération de paramètres POST
    Par TheLostMind dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/12/2008, 08h08
  4. [AJAX] Ajax et requete php
    Par absurdsystem dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 02/04/2008, 16h46
  5. Réponses: 1
    Dernier message: 22/01/2007, 20h33

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