Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > Prototype & Script.aculo.us
Prototype & Script.aculo.us Forum d'entraide sur les frameworks Prototype et Script.aculo.us
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 21/11/2007, 16h48   #1
Invité régulier
 
Inscription : octobre 2007
Messages : 18
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 18
Points : 6
Points : 6
Par défaut [Prototype] Transmission de variables $_POST

Bonjour,

la solution est certainement trés simple mais je cherche depuis ce matin et là je cale complétement.

Pas besoin de préciser que je débute en javascript et ajax.

Voilà le problème :
je veux afficher un tableau dans une balise div à partir d'une requête SQL ayant des paramètres variables générés à partir d'un formulaire.


sur onclick, Je fais appel à la fonction affiche_stats(id) pour rafraîchir ma balise div :
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
 
 
function affiche_stats(id) {
 
	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 method   = "POST"; 
	var filename = "affiche_stats.php"; 
	var data     = null; 
 
	xhr_object.open(method, filename, true); 
 
	xhr_object.onreadystatechange = function() { 
	   if(xhr_object.readyState == 4) { 
		document.getElementById(id).innerHTML = xhr_object.responseText;
	   } 
	} 
	xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
	xhr_object.send(data); 
}
Mais quand je clique sur le bouton 'actualiser les données', j'ai un message d'erreur comme quoi les variables ne sont pas définies -->Notice: Undefined index: Type_donnees etc...

Je pense qu'il faut traiter les variables pour les transmettre au serveur, puis traiter la réponse mais là je cale .....

J'ai oublié une partie du code pour affichage_stats.php

Code :
1
2
3
4
5
6
	<table cellspacing='0' cellpadding='0' summary='Contenu'>
		<tr><td colspan=10 height=24 class='entete_course'><?php echo 'Domaine choisi : '.$_POST['Type_donnees']?></td></tr>
		<tr><td colspan=10 height=24 class='entete_course'><?php echo 'Statistique choisie : '.$_POST['Type_stats']?></td></tr>
 
 
	</table>
Si quelqu'un peut m'éclairer ou m'orienter vers des tutos.

Merci d'avance.
Malola est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2007, 18h04   #2
Expert Confirmé Sénior
 
Avatar de denisC
 
Inscription : février 2005
Messages : 4 069
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2005
Messages : 4 069
Points : 4 698
Points : 4 698
Citation:
Envoyé par Malola Voir le message
var data = null;

xhr_object.open(method, filename, true);

xhr_object.onreadystatechange = function() {
if(xhr_object.readyState == 4) {
document.getElementById(id).innerHTML = xhr_object.responseText;
}
}
xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr_object.send(data);
}
Ce que tu reçois dans $_POST c'est le contenu envoyé par send, donc la vairable data, qui vaut null. Donc tu ne reçois rien.

Il faut mettre quelque chose dans data (sous la forme cle=valeur).

Pour les tutoriels, je ne peux que te proposer :
http://amillet.developpez.com/tutori...ototype/#LII-C

qui présente l'utilisation de prototype pour faire le genre de choses que tu cherches à faire. Mais sinon, il te suffit de créer une chaine de caractère cle1=valeur1&cle2=valeur2 etc....
denisC est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2007, 09h46   #3
Invité régulier
 
Inscription : octobre 2007
Messages : 18
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 18
Points : 6
Points : 6
Merci denisC pour ta réponse. Je cerne un peu mieux où est le problème.
Voilà ce que j'ai essayé :

j'ai 4 entrées dans mon formulaire dont voici un exemple :
Code :
1
2
3
4
5
6
7
<form method="POST" id="form_stats" action='' name="form_stats">
				<label class='entete_course'>Quelles données souhaitez-vous afficher ?
					<select id="Type_donnees" name="Type_donnees">
						<option value="Favoris de la presse" selected>Favoris de la presse</option>
						<option value="Numéro PMU">Numéro PMU</option>
					</select>
				</label>
J'ai donc rempli ma variable data comme celà :
Code :
var data = 'Type_donnees='+Type_donnees+'&Type_stats='+Type_stats+'&TCourse='+TCourse+'&Npartants='+Npartants;
Mais là choux blanc, il ne se passe rien.
Malola est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2007, 10h21   #4
Invité régulier
 
Inscription : octobre 2007
Messages : 18
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 18
Points : 6
Points : 6
Je ne doit pas être bien frais ce matin car en fait je ne traitais pas la variable.

J'ai résolu mon problème comme celà :

Code :
type_donnees = document.getElementById('Type_donnees').value;
puis
Code :
data = 'Type_donnees='+type_donnees
Merci denis pour ton aide.
Malola 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 01h17.


 
 
 
 
Partenaires

Hébergement Web