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

Bibliothèques & Frameworks Discussion :

Transmission de variables $_POST [Prototype]


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 25
    Points : 16
    Points
    16
    Par défaut 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 : 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
     
     
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    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....

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    var data = 'Type_donnees='+Type_donnees+'&Type_stats='+Type_stats+'&TCourse='+TCourse+'&Npartants='+Npartants;
    Mais là choux blanc, il ne se passe rien.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    type_donnees = document.getElementById('Type_donnees').value;
    puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data = 'Type_donnees='+type_donnees
    Merci denis pour ton aide.

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

Discussions similaires

  1. [Sécurité] PHP 5 transmission de variables
    Par messier79 dans le forum Langage
    Réponses: 18
    Dernier message: 09/01/2006, 14h05
  2. Transmission de variable avec GET et header
    Par spirou dans le forum Langage
    Réponses: 10
    Dernier message: 03/01/2006, 19h04
  3. Recuperer les variables $_POST
    Par casa13 dans le forum Langage
    Réponses: 15
    Dernier message: 03/01/2006, 16h33
  4. [FLASH MX] Transmission de variables entre 2 swf
    Par totoche dans le forum Flash
    Réponses: 3
    Dernier message: 12/10/2005, 15h54
  5. transmission de variables
    Par nicerico dans le forum ASP
    Réponses: 14
    Dernier message: 16/08/2004, 16h20

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