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 09/02/2011, 16h58   #1
Invité régulier
 
Inscription : avril 2006
Messages : 70
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 70
Points : 7
Points : 7
Par défaut Problèmes 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 :
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 :
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
BOLARD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 19h17   #2
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 126
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 126
Points : 7 270
Points : 7 270


Code :
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 :
1
2
3
4
<?php
     $titre = $_POST["titre"];
     echo "tittre :".$titre;
?>

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2011, 08h18   #3
Invité régulier
 
Inscription : avril 2006
Messages : 70
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 70
Points : 7
Points : 7
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
BOLARD est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h28.


 
 
 
 
Partenaires

Hébergement Web