Se connecter / S'enregistrer
Votre question

choix multiple et traitement de données

Dernière réponse : dans Programmation
5 Janvier 2016 15:09:57

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 :

-----------------------------------------------------------------
le 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>

-----------------------------------------------------------------
le 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>

Autres pages sur : choix multiple traitement donnees

5 Janvier 2016 20:37:56

Bonjour,

En fais tu a du mal comprendre comment fonctionné les formulaire ^^ ( si non tu ne serais pas surpris par le comportement de ton code )

Un formulaire n'est ni plus ni moins qu'un lien qui vas venir rajouter des information en plus lorsqu'il vas aller sur la page ...

En GET les donner son juste concaténer a la fin de l'url et en POST elle sont ajouter dans le header de la page ...


Donc si on regarde ta page 2 ( enfin liste2.php ^^ )
( sa tombe bien le php est procédurale , il suiffe de lire le code pour comprendre ce qui fais )

En premier on commence par afficher de l'html ( ici un formulaire )
Ensuite on regarde si la variable $_POST['montantaug'] existe,
Si elle existe pas ont a fini .

A ce moment la l'utilisateur peut rentrer des donner ...
ET cliquer sur le "lien" (formulaire) afin de visité la page : action='liste2.php'

On arrive donc sur la page list2.php
En premier on commence par afficher de l'html ( ici un formulaire )
Ensuite on regarde si la variable $_POST['montantaug'] existe,
Cette variable existe ...
Ont stock les variables dans d'autre variable ( heuu oui, pourquoi pas ! )
On declare une fonction !!!!!!!

On assigne a une variable le nouveau prix que l'on viens de calculer a l'aide la fonction ...

Et on affiche des chose coller a d'autre chose un peut n'importe comment !


c'etait sportif pour mon estomac sur la fin !
Donc voila comment la page devrais etre faite ;

0. On déclare nos function, nos variable global ect ...
1 . On ce connecte a la bdd
-> si erreur on retourne une erreur.
2. On verifi que l'on a des donner d'un formulaire
On utilise ici if(!empty($_POST)){
2.1 On traite les donner

2.2 On redirige sur la page 1.

3. Si on a pas de donner de formulaire ,alors on affiche le html
( et la tu ferme ta balise php et tu commence ton <html><headder> .....


Sachant que pour l'etage 0 , on fais généralement un fichier que l'on inclue dans toute les pages ...


La je viens de relire ton poste et je de me rendre compte que je te prend pour un debutant alors que tu fais un truc chelou car j'avais pas lue le code de ta page 1 ... un espèce d'include dans une boucle O_o c'est peut etre une idee de genie !

Enfin si tu etait un genie tu serais que pour ton truc tu doit utilisé require() et non require_once() ...

Du coup j'ai un méga doute !
Bref, si t'es un geni incompris je viens de te donner la solution, si t'es un débutant qui veux faire de la magie avec des boup de bois et des cailloux laisse tomber c'est pas fais pour toi !
Par contre, si tu est un débutant passionné qui veux vraiment venir a boup de son projet
je serais heureux de continuer a t'expliquer comment concevoir ton projet de la meilleur façon, et t'aider a progresser dans le monde du dev ...

Houahaha c'est beau ce que je dit !

Bon par contre j'ai pas trop compris ton histoire de prix, fruit , saison, tableau , changer O_o...
c'est quoi ? un tableau a 3 dimension et faut un système pour afficher / changé les valeur ?

( faut peut etre que j'arrete de moi !!! )
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS