Salut,
Personnellement je ne comprends pas tout, déjà les deux fichiers sont nommés liste2.php, bon ça c'est juste une petite erreur mais par contre le deuxième fichier est un mystère complet :
Code :
- <input type="hidden" name="fruits" id="input_cache_fruits" value="$param_rech">
|
Variable php dans le html?
Code :
- $param_rech = $_POST['fruits'];
|
Du coup $param_rech renvoie la chaîne de caractères "$param_rech"?
Code :
- $nouvprix = calculaugmentation($prix, $montantaug);
|
Elle est instanciée où cette variable $prix? Quand liste2.php est appelé dans liste.php ça va, mais sinon $prix n'existe pas.
C'est normal que seul le deuxième formulaire apparaisse après validation du changement de prix puisque c'est ce qui est demandé :
Code :
- <form method='POST' action='liste2.php'>
|
Bref c'est mal conçu, il faut garder qu'un fichier de traitement des formulaires qui en fonction de la variable $_POST passée ou non affiche un contenu HTML ou un autre. Sachant que dans le deuxième formulaire il faut repasser dans ta variable POST le fruit ainsi que son prix. Après le mieux c'est toujours de bien séparer le HTML du php dans des fichiers différents afin de ne pas se perdre.
À l'heure d'aujourd'hui le plus adapté serait les requêtes Ajax mais si tu ne veux pas te lancer dans le Javascript alors c'est mort.
Donc moi à ta place je ne garderai qu'un fichier et je distinguerai bien ce qu'il faut afficher en fonction de :
- premier formulaire envoyé ou non
- deuxième formulaire envoyé ou non
Ce qui donne 3 affichages différents :
- aucun formulaire validé (pas de variable $_POST définie)
- formulaire 1 validé (variable $_POST["fruits"] définie mais pas $_POST["montantaug"])
- formulaire 2 valide (variable $_POST["montantaug"] définie)
Donc on peut traite le premier cas par défaut sans écrire de condition si ce n'est dans la boucle des options où l'on peut ajouter dans les <option> l'attribut "selected" quand le fruit vaut $_POST["fruits"] (ajouter dans la condition ET si la variable est définie afin d'éviter une erreur). Cela permet de ne pas retaper le premier formulaire partout.
Dans le cas où le formulaire 1 est validé tu ajoutes la requête de prix et le formulaire d'augmentation du prix (en récupérant dans des champs cachés $_POST["fruits"] et $prix tout en gardant les noms correspondant).
Dans le cas où le formulaire 2 est validé tu réaffiches le prix (pas besoin de requête puisque tu dois l'avoir en variable POST) puis tu lances ta fonction avec pour paramètres $_POST["prix"] et $_POST["montantaug"].
---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.