à mon avis ajax, ne serait pas la meilleurs solution, elle serait bonne mais pas la "plus pratique"
Par contre, l'utilisation de javascript est obligatoire pour effectuer ce que tu souhaites sans rechargement de page !
Sinon, en conservant ce que tu as fait, il te suffit de mettre des données reçus via $_POST dans les champs de formulaires correspondants !
donc, pour aller au plus simple :
Solution PHP (tels quel)
Code : Tout sélectionner
<form name="menuDeroulant" action='etape2.php' method='POST'>
<label class='classe_label'>Votre nom:</label><input type="text" value ="<?php if(isset($_POST['nom'])) echo $_POST['nom'] ; ?>" name="nom" />*<br>
<label class='classe_label'>Votre prénom:</label> <input type="text" value ="<?php if(isset($_POST['prenom'])) echo $_POST['prenom'] ; ?>" name="prenom" />*<br>
<...
...
Javascript :
le principe serait d'afficher avec un attribut CSS display:none et l'attribut html disable=true tous les cas de figures possible avec un moyen de les retrouver par groupes facilement (une classe commune, tous dans une même div, ...)
Lors de la sélection du choix effectué depuis la liste déroulante, tu lance une fonction JS qui va afficher les éléments correspondant et les activer !
exemple :
Code : Tout sélectionner
<script type="text/javascript">
var maFunction = function(select){
var val = select.options[select.selectedIndex].value
document.getElementById(val).style.display = "block" ;
}
</script>
<select name="liste" onchange='maFunction(this);'>
<option>Précisez la catégorie</option>
<option <?php if ($liste == "livre") echo $selected; ?>>livre</option >
<option <?php if ($liste == "magasin") echo $selected; ?>>magasin</option >
<option <?php if ($liste == "CD") echo $selected; ?>>CD</option >
</select>
<div id="livre" style="display:none">
<input ... /> <!-- autres parametres du formulaire liés au choix "livre" -->
</div>
<div id="magasin" style="display:none">
<input ... /> <!-- autres paramètres du formulaire liés au choix "magasin" -->
</div>
...
Sinon, en ajax, lors de changement de choix dans la liste déroulante, tu récupère la valeur (comme ci-dessus) puis tu effectue une requête sur une autre page qui va te retourner le morceau de formulaire à ajouter à ton formulaire actuel, et tu le place dans une div situé dans ton formulaire !...
Mais dans ce cas là, je te laisserais déjà faire connaissance avec l'ajax pour bien appréhender cette étape ^^
@++
à mon avis ajax, ne serait pas la meilleurs solution, elle serait bonne mais pas la "plus pratique"
Par contre, l'utilisation de javascript est obligatoire pour effectuer ce que tu souhaites sans rechargement de page !
Sinon, en conservant ce que tu as fait, il te suffit de mettre des données reçus via $_POST dans les champs de formulaires correspondants !
donc, pour aller au plus simple :
Solution PHP (tels quel)
[code]<form name="menuDeroulant" action='etape2.php' method='POST'>
<label class='classe_label'>Votre nom:</label><input type="text" value ="<?php if(isset($_POST['nom'])) echo $_POST['nom'] ; ?>" name="nom" />*<br>
<label class='classe_label'>Votre prénom:</label> <input type="text" value ="<?php if(isset($_POST['prenom'])) echo $_POST['prenom'] ; ?>" name="prenom" />*<br>
<...
...
[/code]
Javascript :
le principe serait d'afficher avec un attribut CSS display:none et l'attribut html disable=true tous les cas de figures possible avec un moyen de les retrouver par groupes facilement (une classe commune, tous dans une même div, ...)
Lors de la sélection du choix effectué depuis la liste déroulante, tu lance une fonction JS qui va afficher les éléments correspondant et les activer !
exemple :
[code]
<script type="text/javascript">
var maFunction = function(select){
var val = select.options[select.selectedIndex].value
document.getElementById(val).style.display = "block" ;
}
</script>
<select name="liste" onchange='maFunction(this);'>
<option>Précisez la catégorie</option>
<option <?php if ($liste == "livre") echo $selected; ?>>livre</option >
<option <?php if ($liste == "magasin") echo $selected; ?>>magasin</option >
<option <?php if ($liste == "CD") echo $selected; ?>>CD</option >
</select>
<div id="livre" style="display:none">
<input ... /> <!-- autres parametres du formulaire liés au choix "livre" -->
</div>
<div id="magasin" style="display:none">
<input ... /> <!-- autres paramètres du formulaire liés au choix "magasin" -->
</div>
...
[/code]
Sinon, en ajax, lors de changement de choix dans la liste déroulante, tu récupère la valeur (comme ci-dessus) puis tu effectue une requête sur une autre page qui va te retourner le morceau de formulaire à ajouter à ton formulaire actuel, et tu le place dans une div situé dans ton formulaire !...
Mais dans ce cas là, je te laisserais déjà faire connaissance avec l'ajax pour bien appréhender cette étape ^^
@++