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] Variable POST introuvable


Sujet :

AJAX

  1. #1
    Membre confirmé Avatar de benoitB
    Profil pro
    Inscrit en
    Août 2002
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 78
    Par défaut [AJAX] Variable POST introuvable
    Bonjour,
    trois pages :
    1. main.php avec l'appel d'un fichier php (ci-dessous) pour y inclure du code
    2. getMetiers.php pour obtenier une liste de métiers
    3. traitement.php est le formulaire appelé par main.php pour traitement


    main.php
    Code php : 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
    <?php
    echo "<table width=100% class='SansBordures'>\n";
    echo "<form name='traitement' method='post' action='./traitement.php' enctype='multipart/form-data'>\n";
     
    echo "<tr><td></td>\n";
    echo "<td align='Right'>Liste des métiers</td>\n";
    echo "<td>\n";
    echo "<div id='_metiers' style='display:inline'></div>\n";
    echo "</td>\n";
    echo "<td></td></tr>\n";
     
    echo "<tr><td></td><td></td>\n";
    echo "<td>".'<input tabindex=13 type="submit" style="WIDTH:100%;" value="Valider..." />'."</td>\n";
    echo "<td></td></tr>\n";
     
    echo "</form>\n"
    echo "</table>\n"
    ?>
    ... bla bla bla

    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
    function getXhr ()
    {
    	var xhr = null;
    	// Firefox et autres
    	if( window.XMLHttpRequest )
    		xhr = new XMLHttpRequest();
    	// Internet Explorer
    	else if( window.ActiveXObject )
    	{
    		try
    		{
    			xhr = new ActiveXObject("Msxml2.XMLHTTP");
    		}
    		catch (e)
    		{
    			xhr = new ActiveXObject("Microsoft.XMLHTTP");
    		}
    	}
    	else
    	{
    		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
    		xhr = false;
    	}
    	return xhr;
    }
     
    function updateMetiers ()
    {
    	var xhr = getXhr();
    	xhr.onreadystatechange = function ()
    	{
    		if( xhr.readyState == 4 && xhr.status == 200 )
    		{
    			leselect = xhr.responseText;
    			document.getElementById('_metiers').innerHTML = leselect;
    		}
    	}
    	xhr.open("POST","getMetiers.php",true);
    	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	sel = document.getElementById('sousProjet');
    	sousProjet = sel.options[sel.selectedIndex].value;
    	xhr.send("sousProjet="+sousProjet);
    }
    ... bla bla bla
    getMetiers.php
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    if( isset($_POST["sousProjet"]) )
    {
    	$mesMetiers = $_SESSION["p_moi"]->ListeMetiersSociete(0);
    	if( count($mesMetiers) )
    	{
    		echo "<select id='metier_' name='metier_' style='WIDTH:100%;'>\n";
    		foreach( $mesMetiers as $mesMetier )
    			echo "<option value='$mesMetier[NIU]'>".$_SESSION["p_moi"]->EntiteesHtml($mesMetier["libelle"])."</option>\n";
    		echo "</select>\n";
    	}
    }
    ?>

    traitement.php
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    if( isset($_POST) )
    {
    	... bla bla bla
    	MailTo("monmail@gmail.com", "-A-", "_POSTmetier_='".$_POST["metier_"]."' intval(metier_)='".intval($_POST["metier_"])."'", "");
    	... bla bla bla
    }
    ?>

    Tout se passe normalement, dans la page main.php je voit bien les métiers s'afficher, j'ai émis un courriel dans le corps du fichier getMetiers.php pour tracer et j'y passe bien.

    Lorsque je valide le formulaire main.php, je ne retrouve, dans le fichier traitement.php, pas la variable $_POST['metier_'] ($_POST['metier']='' elle est donc vide !!!)

    C'est le cas pour deux variables mises à jours via un appel AJAX alors que toutes les autres variables $_POST (non AJAX) sont bien visibles dans le fichier traitement.php.

    Une idée ?

    Par avance merci.

  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
    Par défaut
    Bonjour,

    Montre nous le code html généré concerner mais pas le php. On ne trouve même pas où tu appelles la fonction, la structure de ton html est bancale, une balise form directement dans table, ...

    A+.

Discussions similaires

  1. [AJAX] Nom de variable POST avec accent
    Par bailamos dans le forum AJAX
    Réponses: 2
    Dernier message: 21/02/2010, 00h22
  2. Réponses: 1
    Dernier message: 24/07/2009, 02h59
  3. Réponses: 6
    Dernier message: 15/04/2009, 14h20
  4. [AJAX] récupérer variable post
    Par hokidoki dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/03/2009, 16h07
  5. [AJAX] Récuperation de variable POST sous Firefox
    Par Phenomenium dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 03/11/2006, 15h22

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