PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 05-01-2016 12:59:21

abdoulayecoumba
Membre
Inscription : 07-10-2015
Messages : 13

choix multiple et traitement des données

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



-----------------------------------------------------------------------------------
Contenu de la page liste..php
-----------------------------------------------------------------------------------
<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>

-----------------------------------------------------------------------------------
Contenu de la page liste2..php
-----------------------------------------------------------------------------------


<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['montantaug'] ))
                 
    {  
                    $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>

 

Hors ligne

#2 05-01-2016 15:51:23

tof73
Membre
Inscription : 21-12-2014
Messages : 156
Site Web

Re : choix multiple et traitement des données

commençons par le début :
    <input type="hidden" name="fruits" id="input_cache_fruits" value="$param_rech">
que vaux $param_rech ? surement pas ce qui est espéré. il faut donc dans liste.php faire un lien vers liste2.php en passant en paramètre le fruit dont on veux modifier le prix.
dans liste2.php, verifier que ce paramètre correspondant bien à un fruit, afficher le formulaire si c'est le cas.
lors de la modification du prix, il faut d'abord récupérer dans la table le prix du produit.

Hors ligne

#3 05-01-2016 16:51:52

abdoulayecoumba
Membre
Inscription : 07-10-2015
Messages : 13

Re : choix multiple et traitement des données

Merci our ta reponse tof73  $param_rech représente la variable $_POST['fruits'] du premier formulaire de la page liste.php et c'est à travers cette variable que j'ai pu loger de facon nickel le nom d'un fruit quelconque que j'ai choisi sur la liste deroulante issue de ce même formulaire ainsi a chaque fois que je click sur un des noms des fruits qui s'affiche sur cette liste deroulante , j'ai pu afficher les autres données relatives au fruit en question, c'est à dire son NOM son PRIX et sa SAISON sans probleme à travers un echo jusque là pas de probleme.
Voila donc quelques explications par rapport à votre premiere question
Maintenant pour la suggestion que vous me faites '' il faut donc dans liste.php faire un lien vers liste2.php en passant en paramètre le fruit dont on veux modifier le prix.'' , voulez vous etre un peu plus explicite en me donnant des explications par rapport à comment faire le lien vers la page liste2.php et ensuite et comment recuperer sur la page liste2.php les variables  $param_rech  et $prix que j'ai pu trouvées sur la page liste.php
je suis un débutant en php

merci

Hors ligne

#4 19-01-2016 12:29:26

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : choix multiple et traitement des données

Bonjour,

<input type="hidden" name="fruits" id="input_cache_fruits" value="$param_rech">
Cette ligne est à modifier par


<input type="hidden" name="fruits" id="input_cache_fruits" value="<?php echo $param_rech; ?>">
 

pour le moins. Ensuite pour votre 2e erreur à savoir le prix, la variable $prix n'est pas initialisée. Il est donc difficile de faire une addition avec un chiffre dont on ne connaît pas la valeur.
Il vous faut rechercher le prix du fruit concerné pour en calculer la nouvelle valeur.

++


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

Pied de page des forums