Changer la valeur d'un champs à partir d'un choix multiple

Fermé
abdoulayecoumba - Modifié par jordane45 le 22/12/2015 à 23:54
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 23 déc. 2015 à 16:15
Bonjour je cherche quelqu'un pour m'aider à résoudre

J'ai créé une table avec les champs suivants : '' nomfruit'', ''saison'' , ''prix''
J'ai créé ensuite un formulaire avec un seul champ intitulé ''fruit'' qui affiche une liste déroulante des noms des fruits contenus dans la collonne ''nomfruit'' de ma table .
Je voudrais maintenant pouvoir  faire deux choses à la fois :
1-afficher le prix d'un fruit quelconque en choisissant son nom sur la liste déroulante, jusque là j'ai pas de problème
2- ensuite Augmenter au prix du fruit un montant quelconque que je vais saisir via un autre formulaire, puis afficher le nouveau prix. C'est au niveau de cette deuxième étape ou ca se corse pour moi
Est ce possible que je puisse y parvenir uniquement avec le php,

voici mon code

<html > 

<body> 
   
<?php 
          // Liste déroulante 
    try 
       { 
        $bdd = new PDO('mysql:host=localhost;dbname=productions','root','',array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); 
       } 
    catch(Exception $e) 
       { 
        die('Erreur : '.$e->getMessage()); 
       } 
  ?> 
  
  
    <form method="post" action="jordan.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();
       
        }
   
?> 

    <form  method='POST' action='jordan.php'>
           
     Montant augmentation
            <br/>   
   <input type="text" name="montantaug"/> <br><br/>
   
            <input type="submit" name="valider" value="VALIDER LE MONTANT A AUGMENTER"/>
        </form>
  
<?php
         
     
     if ( isset($_POST['montantaug']))
               
  {  
   $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>


Voici les deux messages d'erreur que m'affiche wamp :

Notice: Undefined variable: prix in C:\wamp\www\Nouveau dossier (2)\programme_recherche\jordan.php on line 104


Notice: Undefined variable: param_rech in C:\wamp\www\Nouveau dossier (2)\programme_recherche\jordan.php on line 106




EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.
A voir également:

2 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
Modifié par jordane45 le 23/12/2015 à 00:20
Bonjour,

Voici ton code corrigé et remis en forme
<?php
//--------------------------------------------------//
//Fichier (cnxBDD.php) de connexion à la BDD
// à inclure dans les pages dont tu en as besoin
//--------------------------------------------------//
try { 
 $bdd = new PDO('mysql:host=localhost;dbname=productions','root','',array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); 
} catch(Exception $e) { 
 die('Erreur : '.$e->getMessage()); 
} 
?>


<?php
//--------------------------------------------------//
//Fichier jordan.php
//--------------------------------------------------//

//Connexion à la BDD
require_once "cnxBDD.php";


//Récupération propre des variables
$param_rech = isset($_POST['fruits']) ? $_POST['fruits'] : '';
$montantaug = isset($_POST['montantaug']) ? $_POST['montantaug'] : '';


//Fonctions
function calculaugmentation($prix, $montantaug){
 $nouvprix = $prix + $montantaug;// calcul du nouveau prix
 return $nouvprix; // indique la valeur à renvoyer, ici le nouveau prix
}
 
?>
<html > 
<head>
 <title>TitreDeTaPage</title>
</head>
<body> 
 
 <form method="post" action=""> 
   <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()) { 
       echo "<option value='".$donnees['nom']."'>".$donnees['nom']."</option>"; 
     } 
  ?> 
   </select>
   <br><br/>   
   <input type="submit" name="valider" value="VALIDER"/><br><br/>
  </form> 

<?php 
  if(!empty($param_rech)){    
    $req = $bdd->prepare('SELECT * FROM fruits WHERE nom= :nom_fruit');
    $req->execute(array('nom_fruit' => $param_rech ));
 
    while ($result = $req->fetch()){
   $prix= $result['prix'];
   $saison =$result['saison'];
      echo "Le prix actuel d '$param_rech est de :$prix $saison<br><br>";      
    }
    $req->closeCursor();     
  }
   
?> 

  <form  method='POST' action=''> 
    <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" value="$montantaug"> 
   <br><br>
     <input type="submit" name="valider" value="VALIDER LE MONTANT A AUGMENTER"/>
  </form>
  
<?php
         
     
  if (!empty($montantaug)) {     
   // Calcul du nouveau prix
    $nouvprix = calculaugmentation($prix, $montantaug);
    echo 'Le nouveau prix de '.''.$param_rech.''. 'est de :'.''.$nouvprix.''.'<br><br />';              
  }
?>  
  
</body> 
</html>


Cordialement, 
Jordane                                                                 
0
abdoulayecoumba
23 déc. 2015 à 16:04
ok jordane tu vois que t'ai pas oublié ,il ya même un fichier qui porte ton nom dans mon disque dure .
dés que j'aurais testé ta proposition je te ferais signe
merci
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
23 déc. 2015 à 16:15
Je suis émue :-)
0