Bonjour,
trois pages :
- main.php avec l'appel d'un fichier php (ci-dessous) pour y inclure du code
- getMetiers.php pour obtenier une liste de métiers
- traitement.php est le formulaire appelé par main.php pour traitement
main.php
... bla bla bla
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" ?>
getMetiers.php
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
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.
Partager