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("[email protected]", "-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.