Bonjour,
J'ai créé une table contenant trois colonnes ;
Noms (il s'agit de noms de fruits ), Saison , Prix
J'ai créé un formulaire contenant une liste déroulante des différents noms de fruits qui me permet d'aller extraire au niveau de la table le Prix et la Saison et les afficher . Jusque là tout fonctionne comme je le veux .
Maintenant je voudrais augmenter à souhait le prix du fruit affiché comment ? En créant dans une autre page un nouveau formulaire contenant un seul champs de saisie intitulé '' Montant à augmenter '' et qui devra s'afficher en dessous de l'affichage du prix et de la saison .
Je voudrais à partir de ce formulaire saisir le montant que je voudrais augmenter sur le prix puis exporter au niveau de la table le nouveau prix c'est à ce niveau ou j’éprouve toute les difficultés du monde car malgré le fait que le deuxième formulaire s'affiche correctement wamp me signale à ce niveau deux erreurs :
Notice: Undefined index: montantaug in C:\wamp\www\Nouveau dossier (2)\programme_recherche2\liste2.php on line 23
Notice: Undefined variable: prix in C:\wamp\www\Nouveau dossier (2)\programme_recherche2\liste2.php on line 3
Et puis je souhaiterais savoir pourquoi aprés avoir valider le montant à augmenter tout le contenu de l'ecran disparaît seul s'affiche le deuxieme formulaire .
Cette difficulté me pourrit la vie depuis bientôt dix jours j'ai beau essayer de piocher une solution sur le net mais je ne trouve pas de solution .
Je me suis rendu compte que si je réunis tout dans un seul formulaire ca marche nickel, mais moi je tiens à avoir deux formulaires distincts.
Je rappelle je suis débutant je ne connais que le html et le PHP je connais absolument rien en Java script voici mon code :
<html >
<body>
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=productions','root','',array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
// Liste déroulante
<form method="POST" action="liste.php">
<label for="fruits">Choisir le type de fruit que vous voulez changer le prix</label><br><br/>
<select name="fruits" id="fruits">
<?php
$reponse = $bdd->query('SELECT * FROM fruits');
while ($donnees = $reponse->fetch())
{
?>
<option value="<?php echo $donnees['nom'];?>"> <?php echo $donnees['nom'];?> </option>
<?php
}
?>
</select>
<br><br/>
<input type="submit" name="valider" value="VALIDER"/><br><br/>
</form>
<?php
// Recherche dans la table du prix actuel et affichage de celui ci
if( isset( $_POST['fruits'] ))
{
$param_rech = $_POST['fruits'];
?>
<?php
$req = $bdd->prepare('SELECT * FROM fruits WHERE nom= :nom_fruit');
$req->execute(array(
'nom_fruit' => $param_rech,
));
while ($result = $req->fetch())
{
echo 'Le prix actuel de '.''.$param_rech.''. 'est de :'.''.$result['prix'].''.$result['saison'].'<br><br />';
$prix = $result['prix'];
}
$req->closeCursor();
}
require_once "liste2.php";
?>
</body>
</html>
--------------------------------------------------
la page résérvée au deuxieme formulaire
---------------------------------------------------
<html >
<body>
<form method='POST' action='liste2.php'>
<input type="hidden" name="fruits" id="input_cache_fruits" value="$param_rech">
<label for="montantaug">Montant augmentation</label>
<br>
<input type="text" name="montantaug" id="montantaug">
<br><br>
<input type="submit" name="valider" value="VALIDER LE MONTANT A AUGMENTER"/>
</form>
<?php
if( isset( $_POST['fruits'] ))
{
$param_rech = $_POST['fruits'];
$montantaug = $_POST['montantaug'];
// Calcul du nouveau prix
function calculaugmentation($prix, $montantaug)
{
$nouvprix = $prix + $montantaug;// calcul du nouveau prix
return $nouvprix; // indique la valeur à renvoyer, ici le nouveau prix
}
$nouvprix = calculaugmentation($prix, $montantaug);
echo 'Le nouveau prix de '.''.$param_rech.''. 'est de :'.''.$nouvprix.''.'<br><br />';
}
?>
</body>
</html>
Décrivez ici ce que vous cherchez à obtenir
Décrivez ici vos erreurs ou ce que vous obtenez à la place de ce que vous attendez :(
Salut,
Ton require_once "liste2.php"; doit être inclu dans ton if( isset( $_POST['fruits'] )).
Dans ton fichier liste2.php, c'est if( isset( $_POST['montantaug'] )) et non if( isset( $_POST['fruits'] )).
++
Merci jeremylevy, pour tes explications , j'ai essayé de faire ce que vous m'avez suggeré : j'ai d'abord mis le require_once à l'interieur de
if( isset( $_POST['fruits'] )).-plus précisément aprés le $req->closeCursor();
et aussi j'ai rectifié la faute d'inattention que j'avais commise dans la page liste2.php mais ca m'affiche tjrs l'erreur
Notice: Undefined variable: prix in C:\wamp\www\Nouveau dossier (2)\programme_recherche2\liste2.php on line 33
Le probleme est que le prix et le nom du fruit trouvé sur la premiere page liste,PHP ne parviennent pas à etre transférés sur la deuxieme feuille liste2.php pour etre pris en compte dans le calcul et l'affichage final du nouveau prix modifié
Tu as oublié les ":" dans ta requête : 'nom_fruit' => $param_rech -> ':nom_fruit' => $param_rech
Tu entres bien dans ton while ?
jeremylevy s'il s'agit de la deuxieme requette de la page liste.php dont vous faites allusion, j'ai effectué la rectification que vous m'aviez recommdée d'y faire au niveau de la premiere pagplus precisément au niveau de la partie
$req = $bdd->prepare('SELECT * FROM fruits WHERE nom = :nom_fruit');
$req->execute(array(
':nom_fruit' => $param_rech,
));
ca ne change rien ca donne tjrs l'erreur
Notice: Undefined variable: prix in C:\wamp\www\Nouveau dossier (2)\programme_recherche2\liste2.php on line 34
maintenant quant à savoir si j'entre bien dans mon while , j'ai verifié je pense pas qu'il est probleme à ce niveau car lorsque cette partie du programme s'execute 'affiche correctement exactement le nom du fruit choisi sur la liste deroulante et son prix
Bonsoir.
Si tu avais commencé par respecter la structure d'un sujet pour une demande d'aide, ton sujet serait plus lisible, par conséquent ta demande serait plus simple à comprendre.
Car respecter la première partie (Ce que je fais), laisser le contenu des deux autres parties par le contenu pré-rempli et mélanger tout le reste en début du sujet, ça ne nous donne pas envie de faire un effort pour comprendre ton problème et t'aider.
Dernière chose extrêmement importante, arrêtes de poster plusieurs messages dans la même journée en faisant l'aumône pour que nous nous dépêchions de t'aider, ça n'aura que l'effet inverse et ta demande d'aide finira par passer aux oubliettes.
etant nouveau sur votre forum c"est pas evidanent que je piusse comprendre du preimier cooup er vos us et coutumes un peu d'indulgence mmonsieur le médiateur si vous l'êtes bienm sure