Aide php s'il vous plait pour formulaire

Fermé
thomas - 10 juin 2005 à 09:34
 Thomas - 10 juin 2005 à 11:26
Bonjour a tous, je viens de créer un formulaire qui affiche des produits dans des input de type radio récupéré d'une base de donnée (jusque ici tout marche).

Le client fait donc son choix, et doit aussi rentrer une quantité dans un input de type text (jusque ici tout marche).

Le client a donc choisi son produit, rentré une quantité et valide le formulaire (c'est ici que tout se gate).

Maintenant une condition doit être réalisée, selon le produit sélectionné et la quantité sélectionnée (3 quantités possible : < à 500, <à 500 et <à 1000, et >1000). En fonction de ces critères une page s'affichera.

Toutefois je ne vois pas du tout comment construire le fichier choix_produit.php (à la validation du formulaire), contenant :

si choix=tel produit et quantité < 500 alors afficher telle page.
si choix=tel produit et quantité < 500 < 1000 alors ...
si choix=tel produit et quantité > 1000 alors ...

Est ce que quelqu'un pourrait m'aider à construire la condition s'il vous plait parce que je ne vois pas du tout comment la construire étant donné qu'elle comporte 2 critères, merci.
A voir également:

6 réponses

Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497
10 juin 2005 à 10:06
Salut,

Est-ce que l'on pourrait avoir le code de ton formulaire ? On pourra comme ça être plus précis.

Merci
0
Oui oui et merci de bien vouloir m'aider :)

<?

// connection à la base de données

include ("include/mysql_connect.php");

?>
<HTML>
<HEAD>
<script language="javascript" type="text/javascript">
function check_form ()
{
var qtt = document.choix_devis.quantite.value;
// on vérifie que le champ est remplie
if (qtt == "") alert ("La quantité doit être renseignée s'il vous plaît");
// sinon => validation du formulaire
else document.choix_devis.submit ();
}
</script>
<body>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="middle" align="left" bgcolor="#007458" class="blanc"><img src="images/cd.jpg"> <b>Devis en ligne</b>
</td>
</tr>
<tr>
<td height="15">
</td>
</tr>
<tr>
<td valign="top" align="center">
<table border="0" cellpadding="0" cellspacing="10">
<tr>
<td valign="bottom" align="left" class="vert"><b>Choisissez le produit</b>
</td>
</tr>
<tr>
<td valign="top" align="center">
<form name="choix_devis" method="post" action="choix_devis.php">
<table border="0" cellpadding="5" cellspacing="0" class="dashed_vert" bgcolor="#F0F0F0">
<tr>
<td valign="top" align="left" class="bleu"><b>Faites votre choix (1 choix seulement) :</b>
</td>
<td valign="top" align="left" class="bleu">
<?php

// on récupère les produits à afficher

$result = mysql_query("select * from t_produit ORDER by id_produit");

// on recupère et initialise les produits

while ($row = mysql_fetch_object($result))

{

// on initialise les variables

$nom_produit = $row->nom_produit;

// on affiche les produits

print("<input type=\"radio\" size=\"20\" value=\"$nom_produit\" name=\"radiobutton\">$nom_produit<br /><br />\n");

}

mysql_free_result($result);

mysql_close ();

?>
</td>
</tr>
<tr>
<td height="10" colspan="2">
</td>
</tr>
<tr>
<td valign="top" align="left" class="bleu"><b>Quantité</b>
</td>
<td valign="top" align="left" class="bleu"><input type="text" name="quantite" size="20">
</td>
</tr>
<tr>
<td height="10" colspan="2">
</td>
</tr>
<tr>
<td valign="top" align="center" class="bleu" colspan="2"><input type="button" name="go_form" value="Valider" onclick="javascript:check_form();">
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</body></html>

Voilà :)
0
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497
10 juin 2005 à 10:42
D'accord, il faut donc dans ton fichier choix_devis.php avant tout que tu récupère la quantité choisie, ainsi que le produit.

$qte = $_POST['quantite'];
$prdt = $_POST['radiobutton'];

ensute utilise les if pour trouver le prix en fonction de la quantité et du type de produit.

http://www.commentcamarche.net/php/phpcond.php3#if
0
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497
10 juin 2005 à 10:50
Exemple :
if ($prdt == "Produit1"){
   if($qte<"500") {
      $prix= "ton prix";
   }
   elseif($qte > "1000"){
      $prix= "ton 2ème prix";
   }
   else {
      $prix = "dernier prix du produit";
   }
elseif ($prdt =="Produit2"){
... etc
}

Compris ?

0
Utilisateur anonyme
10 juin 2005 à 10:39
Moi je le ferais en php !

a la fin tu fait un chti :
<?
if(choix<machin){
<input submit onclik on va a la page>}
else if(choix>truc){
<input submit on va a l'autre page>}
else {
<input autre autre page}
?>
0
Merci pour ta réponse. Oui ça peut se faire toutefois il y a deux conditions et j'ai peur de pas arriver à bien faire le truc, est ce que ça peut se tourner comme ceci ? :

<?
if ((choix=produit1)&&(quantite<500)){
<input submit onclik on va a la page>}
else if((choix=produit1)&&(quantite<500 <1000)){
<input submit on va a l'autre page>}
else if((choix=produit1)&&(quantite>1000)){
<input submit on va a l'autre page>}
?>

Est ce que celà peut marcher ?
0
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497 > Thomas
10 juin 2005 à 10:47
Il faut juste que tu fasse attention quand tu écris tes if que tu les mette dans cet ordre :

1. < 500
2. >1000
3. rien besoin de préciser, tout le reste ira automatiquement dans >500 et < 1000
0
Je vous remercie pour tout, je vais tester tout ça voir comment je peux le tourner :)
0
if ($prdt == "Produit1"){
if($qte<"500") {
$prix= "ton prix";
}
elseif($qte > "1000"){
$prix= "ton 2ème prix";
}
else {
$prix = "dernier prix du produit";
}
elseif ($prdt =="Produit2"){
... etc
}

Dans cette construction, je veux pas afficher un prix, je veux afficher une page à part entière, est ce que le code est ceci du coup :

if ($prdt == "Produit1"){
if($qte<"500") {
<input submit onclik on va a la page>}
}
elseif($qte > "1000"){
<input submit onclik on va a la page>}
}
else {
<input submit onclik on va a la page>}
}
elseif ($prdt =="Produit2"){
... etc
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497
10 juin 2005 à 10:59
Non, à la place du <input...> tu met :

header("Location: http://tonsite/tonchemin/tapage.php");
0
Merci beaucoup \o/
0
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497
10 juin 2005 à 11:03
C'est bon, tout fonctionne ?
0
Thomas > Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007
10 juin 2005 à 11:19
j'ai un petit bug, j'ai modifé ma page index en évitant l'accès à la base de donnée, parce que je ne vais pas en avoir besoin au bout du compte, le code est celui-ci :

<HTML>
<HEAD>
<script language="javascript" type="text/javascript">
function check_form ()
{
var qtt = document.choix_devis.quantite.value;
// on vérifie que le champ est remplie
if (qtt == "") alert ("La quantité doit être renseignée s'il vous plaît");
// sinon => validation du formulaire
else document.choix_devis.submit ();
}
</script>
<body>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="middle" align="left" bgcolor="#007458" class="blanc"><img src="images/cd.jpg"> <b>Devis en ligne</b>
</td>
</tr>
<tr>
<td height="15">
</td>
</tr>
<tr>
<td valign="top" align="center">
<table border="0" cellpadding="0" cellspacing="10">
<tr>
<td valign="bottom" align="left" class="vert"><b>Choisissez le produit</b>
</td>
</tr>
<tr>
<td valign="top" align="center">
<form name="choix_devis" method="post" action="choix_devis.php">
<table border="0" cellpadding="5" cellspacing="0" class="dashed_vert" bgcolor="#F0F0F0">
<tr>
<td valign="top" align="left" class="bleu"><b>Faites votre choix (1 choix seulement) :</b>
</td>
<td valign="top" align="left" class="bleu">
<input name="radiobutton" type="radio" value="cdco" checked style="border:0px;">Produit1<br /><br />
<input name="radiobutton" type="radio" value="cdcr" style="border:0px;">Produit2<br /><br />
<input name="radiobutton" type="radio" value="mcd" style="border:0px;">Produit3<br /><br />
<input name="radiobutton" type="radio" value="cd12" style="border:0px;">Produit4<br /><br />
</td>
</tr>
<tr>
<td height="10" colspan="2">
</td>
</tr>
<tr>
<td valign="top" align="left" class="bleu"><b>Quantité</b>
</td>
<td valign="top" align="left" class="bleu"><input type="text" name="quantite" size="20">
</td>
</tr>
<tr>
<td height="10" colspan="2">
</td>
</tr>
<tr>
<td valign="top" align="center" class="bleu" colspan="2">
<input type="button" name="go_form" value="Valider" onclick="javascript:check_form();">
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</td>
</tr>
</table>

Et ma page choix_devis.php affiche une erreur, je pense je fais des erreurs dans les constructions else et if :

<?

// récupération des variables

$quantite = $_POST['quantite'];
$radiobutton = $_POST['radiobutton'];

// affichage des conditions

// pour produit 1

if ($radiobutton == "cdco")
{
if($quantite<"500")
{
header("Location:cdco1.php");
}
}
elseif($quantite > "1000")
{
header("Location:cdco2.php");
}

else
{
header("Location:cdco3.php");
}


// pour produit 2

elseif ($radiobutton =="cdcr")
{
if($quantite<"500")
{
header("Location:cdcr1.php");
}
}
elseif($quantite > "1000")
{
header("Location:cdcr2.php");
}

else
{
header("Location:cdcr3.php");
}


// pour produit 3

elseif ($radiobutton =="mcd")
{
if($quantite<"500")
{
header("Location:mcd1.php");
}
}
elseif($quantite > "1000")
{
header("Location:mcd2.php");
}

else
{
header("Location:mcd3.php");
}


// pour produit 4

elseif ($radiobutton =="cd12")
{
if($quantite<"500")
{
header("Location:cd121.php");
}
}
elseif($quantite > "1000")
{
header("Location:cd122.php");
}

else
{
header("Location:cd123.php");
}
}
}
?>

Il y a un message d'erreur :

Parse error: parse error, unexpected T_ELSEIF

???
0
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497 > Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007
10 juin 2005 à 11:25
C'est normal, car à chaque fois tu ferme ton premier if{} trop tot.

Voici ce que tu devrais avoir pour le premier, à toi de modifier les suivants ;)
if ($radiobutton == "cdco") { 
   if($quantite<"500"){ 
      header("Location:cdco1.php"); 
   } 
   elseif($quantite > "1000"){ 
      header("Location:cdco2.php"); 
   } 
   else { 
      header("Location:cdco3.php"); 
   }
}
0
C'est bon tout fonctionne merci beaucoup Erdnax pour ton aide, vraiment merci
0