Ajouter un bouton et faire un récapitulatif

chicochaleur29 Messages postés 60 Date d'inscription dimanche 3 juillet 2005 Statut Membre Dernière intervention 22 septembre 2009 - 14 févr. 2008 à 17:30
chicochaleur29 Messages postés 60 Date d'inscription dimanche 3 juillet 2005 Statut Membre Dernière intervention 22 septembre 2009 - 15 févr. 2008 à 15:24
Bonjour

Je suis en train de faire un formulaire d'une commande de matériel

Donc en faite, mon formulaire fonctionne, mais on ne peut commander que du matériel 1 par 1

Donc j'aimerai avoir un bouton "Ajouter" pour que l'on puisse faire une
commande de plusieurs objet en meme temps ainsi que la quantité. Tout
ca devrai apparaitre dans le champ "récapitulatif de la commande"

Comme on pourrai commander tout d'un coup et non 1 par 1


Merci


Voici mon code sources :


Pour la partie matériel et quantité :


<td width="140">
Matériels
</td>

<td width="30" align="center" valign="middle">

<?php

if ($erreur_liste1) {

echo($icone);

}

?>

</td>

<td><select name="liste1" style="width:146"><option value="">Sélectionner...</option>

<option value="Griffon"<?php

if ($_SESSION['liste1'] == "Griffon") {

echo(" selected");

}

?>>Griffon</option>

<option value="Sctochlocks"<?php

if ($_SESSION['liste1'] == "bonbons") {

echo(" selected");

}

?>>Sctochlocks</option>

<option value="Sucettes"<?php

if ($_SESSION['liste1'] == "Sucettes") {

echo(" selected");

}

?>></option>

</select></td></tr></table>Quantité,

<?php

if ($erreur_liste2) {

echo($icone);

}

?>,

<select name="liste2" style="width:146"><option value="">Sélectionner...</option>

<option value="1"<?php

if ($_SESSION['liste2'] == "1") {

echo(" selected");

}

?>>1</option>

<option value="2"<?php

if ($_SESSION['liste2'] == "2") {

echo(" selected");

}

?>>2</option>

Et pour la partie du récapatulatif de la commande

<table width="566" border="0" align="center">----

Voici le
récapitulatif de votre commande,

<?php

if ($erreur_texte3) {

echo($icone);

}

?>

</td>

----
<textarea name=\"zone_texte3\" cols=\"40\"
rows=\"2\"><?=stripslashes($_SESSION['zone_texte3']);?></textarea></td>

4 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
15 févr. 2008 à 05:38
Bonjour,

    déjà, si on avait la page html générée et pas le php,
       ce serait peut-être plus simple, parce que là,
       comment on devine le contenu des $variables php ?

    ensuite, ajouter des éléments à un formulaire ou autre chose
       est un sujet récurent.   tu as fais une recherche dans le forum, les sources.... ?

       mais bon : utilise innerHTML ou createElement+appendChild

<hr />                Cordialement            Bul         «mon Site»     «M'écrire»
0
chicochaleur29 Messages postés 60 Date d'inscription dimanche 3 juillet 2005 Statut Membre Dernière intervention 22 septembre 2009
15 févr. 2008 à 14:26
Je ne comprends pas trop
J'ai chercher sur le forum et ailleur et je ne comprends pas ou je ne trouve pas mon bonheur
Je suis débutant
Tu aurais besoin de tout mon code source pour réussir à faire?

En faite, j'ai 2 listes déroulante (une pour le choix du matériel et
une pour la quantitée), et j'aimerai que quand la personne choisi le
matériel et la quantité, elle appui sur un bouton ajouter, cela
arriverai dans un champ texte "récapitulatif de la commande) comme ca
elle pourrai commander plusieurs chose en meme temps,(ca s'ajouterai au fur et a mesure quand la personne cliquerai sur ajouter) car actulement
mon formulaire fonctionne, mais elle ne peut que commander 1 truc à la
fois! (rien ne va pas la partie "récapitulatif de la commande")
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
15 févr. 2008 à 14:52
que faire à part répéter mon message ?
    je vais l'exprimer autrement ?

__ tu nous donnes la source php, comment peut-on deviner le contenu des $variables php ?
        il faudrait que tu nous donnes la source de la page affichée sur ton micro
        lorsque tu exécutes, déjà, ce serait plus simple.

__ utilise innerHTML ou createElement+appendChild

    il y a une foultitude d'exemples, de questions/réponses sur ce forum à ce sujet

     ce que je peux encore faire, c'est t'en citer un ( d'exemple )
        Upload Multiple en PHP ( ou UMP )   ici
        c'est une d'utilisation de createElement+appendChild
        à toi d'adapter.

       sinon regarde innerHTML dans une doc quelconque
          ça permet d'ajouter du html à un élément existant
          ( si pas trop d'ajouts, sinon dégradation des performances )

    fais au moins un petit quelque chose, on t'aidera à mettre au point
        ne compte pas trop sur un truc tout fait, parce que là, sur ce que tu nous
        met, rien de ce que tu veux faire n'existe.

<hr />                Cordialement            Bul         «mon Site»     «M'écrire»
0
chicochaleur29 Messages postés 60 Date d'inscription dimanche 3 juillet 2005 Statut Membre Dernière intervention 22 septembre 2009
15 févr. 2008 à 15:24
OK, donc voila l'adresse de mon formulaire :

http://chicochaleur.pirahack.info/formulaire/test.php

Et voici le code source :

<?php

// On vérifie si la fonction ini_set() a été désactivée...
$desactive = ini_get('disable_functions');
if (preg_match("/ini_set/i", "$desactive") == 0) {
// Si elle n'est pas désactivée, on définit ini_set de manière à n'afficher que les erreurs...
ini_set("error_reporting" , "E_ALL & ~E_NOTICE");
}

// Vérifier que le formulaire a été envoyé...
if (isset($_POST['envoi'])) {

//On commence une session pour enregistrer les variables du formulaire...

session_start();

$_SESSION['champ1'] = $_POST['champ1'];
$_SESSION['zone_email1'] = $_POST['zone_email1'];
$_SESSION['liste1'] = $_POST['liste1'];
$_SESSION['liste2'] = $_POST['liste2'];

//Evaluation du bouton 1 ...
switch($_POST['bouton1']) {
case "Oui":
$_SESSION['bouton1'] = "Oui";
break;
case "Non":
$_SESSION['bouton1'] = "Non";
break;
default:
$_SESSION['bouton1'] = "";
} // Fin du switch...

//Enregistrement des zones de texte...
$_SESSION['zone_texte1'] = $_POST['zone_texte1'];
$_SESSION['zone_texte2'] = $_POST['zone_texte2'];
$_SESSION['zone_texte3'] = $_POST['zone_texte3'];

// Définir l\'icone apparaissant en cas d\'erreur...

// Définir sur 0 pour afficher un petit x de couleur rouge.
// Définir sur 1 pour afficher l\'image d\'une croix rouge telle que celle utilisée dans l\'assistant
// Si vous utilisez l\'option 1, l\'image de la croix rouge \'icone.gif\' doit se trouver dans le répertoire \'images\',
// ce dernier devant se trouver au même niveau que votre formulaire...
$flag_icone = 0;

// On vérifie si $flag_icone est défini sur 0 ou 1...
if ($flag_icone == 0) {
$icone = " x ";
} else {
$icone = "\n";
    $entetes .="Return-Path: Matériels<toto@centrapel.com>\n";
    $entetes .="Reply-To: Matérielstoto@centrapel.com>\n";
    $entetes .="Content-Type: text/html; charset=iso-8859-1 \n";
    $partie_entete = "<html>\n<head>\n<title>Formulaire</title>\n<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>\n</head>\n\n";

//Partie HTML de l'e-mail...$partie_champs_texte ."Merci d'indiquez votre nom " . $_SESSION['champ1'] . "
\n";$partie_zone_email ."Merci d'indiquez votre adresse Email pour la confirmation de la commande " . $_SESSION['zone_email1'] . "
\n";$partie_listes ."Matériels " . $_SESSION['liste1'] . "
\n";$partie_listes ."Quantité " . $_SESSION['liste2'] . "
\n";$partie_boutons ."Habitez-vous sur Paris? " . $_SESSION['bouton1'] . "
\n";$partie_zone_texte ."Merci d'indiquez l'adresse de livraison " . $_SESSION['zone_texte1'] . "
\n";$partie_zone_texte ."Si vous avez des commentaires ou autre sur la commande " . $_SESSION['zone_texte2'] . "
\n";$partie_zone_texte ."Récapitulatif de votre commande " . $_SESSION['zone_texte3'] . "
\n";
                   

                    // Fin du message HTML
                    $fin = "</html>\n\n";
                   
                    $sortie = $partie_entete . $partie_champs_texte . $partie_zone_email . $partie_listes . $partie_boutons . $partie_cases . $partie_zone_texte . $fin;

                    // Send the e-mail
                    if (@!mail($email_dest,$sujet,$sortie,$entetes)) {
                    echo("Envoi du formulaire impossible");
                    exit();
                    } else {

                    // Rediriger vers la page de remerciement
                    header("Location:http://chicochaleur.myftp.org/merci.html");
                    exit();
                  } // Fin else
                } // Fin du if ($flag_erreur == 0) {
            } // Fin de if POST
?>
<html>
<head>
<script language="javascript">
function changer_couleurs() {
document.fgColor=document.form.fgColor.value
document.bgColor=document.form.bgColor.value
}
</script>
</head>

<form name="form">
<select size="1" name="bgColor" onclick="changer_couleurs()">
<option>Choisissez une couleur de fond</option>
<option value="Blue">Bleu</option>
<option value="Red">Rouge</option>
<option value="Green">Vert</option>
<option value="Yellow">Jaune</option>
<option value="Orange">Orange</option>
<option value="Violet">Violet</option>
<option value="Navy">Bleu foncé</option>
</select>

<select size="1" name="fgColor" onclick="changer_couleurs()">
<option>Choisissez une couleur de police</option>
<option value="Blue">Bleu</option>
<option value="Red">Rouge</option>
<option value="Green">Vert</option>
<option value="Yellow">Jaune</option>
<option value="Orange">Orange</option>
<option value="Violet">Violet</option>
<option value="Navy">Bleu foncé</option>
</select>

</form>

</html>
<html>
<head><script language="JavaScript">
<!--
function Retour()
{
document.write('<form></form>');
}
-->
</script>
<title>Formulaire</title><script language="JavaScript">

function verifSelection() {

if (document.mail_form.champ1.value == "") {
alert("Merci d\'indiquez votre nom")
return false
}

if (document.mail_form.zone_email1.value == "") {
alert("Merci d\'indiquez votre adresse Email")
return false
}

invalidChars = " /:,;'"

for (i=0; i < invalidChars.length; i++) {    // does it contain any invalid characters?
badChar = invalidChars.charAt(i)

if (document.mail_form.zone_email1.value.indexOf(badChar,0) > -1) {
alert("Votre adresse e-mail contient des caractères invalides. Veuillez vérifier.")
document.mail_form.zone_email1.focus()
return false
}
}

atPos = document.mail_form.zone_email1.value.indexOf("@",1)            // there must be one "@" symbol
if (atPos == -1) {
alert('Votre adresse e-mail ne contient pas le signe "@". Veuillez vérifier.')
document.mail_form.zone_email1.focus()
return false
}

if (document.mail_form.zone_email1.value.indexOf("@",atPos+1) != -1) {    // and only one "@" symbol
alert('Il ne doit y avoir qu\'un signe "@". Veuillez vérifier.')
document.mail_form.zone_email1.focus()
return false
}

periodPos = document.mail_form.zone_email1.value.indexOf(".",atPos)

if (periodPos == -1) {                    // and at least one "." after the "@"
alert('Vous avez oublié le point "." après le signe "@". Veuillez vérifier.')
document.mail_form.zone_email1.focus()
return false
}

if (periodPos+3 > document.mail_form.zone_email1.value.length)    {        // must be at least 2 characters after the
alert('Il doit y avoir au moins deux caractères après le signe ".". Veuillez vérifier.')
document.mail_form.zone_email1.focus()
return false
}

if (document.mail_form.liste1.value == "") {
alert("Merci de choisir un matériel")
return false
}

if (document.mail_form.liste2.value == "") {
alert("Merci de choisir la quantitée")
return false
}

nbreboutons1 = document.mail_form.bouton1.length

    flag = 0

        for (i = 0; i < nbreboutons1 ; i++) {

            if (document.mail_form.bouton1[i].checked) {

            flag = 1

            }

        }

if (flag == 0) {

alert("Merci de préciser de lieu où vous résidez")
return false;
}

if (document.mail_form.zone_texte1.value == "") {
alert("Merci de remplir l\'adresse de livraison")
return false
}

} // Fin de la fonction
</script>
</head><form name="mail_form" method="post" action="<?=$_SERVER['PHP_SELF']?>" onSubmit="return verifSelection()">
 
Formulaire
    d'envoi de Matériels

      ----

          <?php
if ($erreur_champ1) {
      echo(stripslashes($erreur_champ1));
      } else {
if ($erreur_email1) {
      echo(stripslashes($erreur_email1));
      } else {
if ($erreur_liste1) {
      echo(stripslashes($erreur_liste1));
      } else {
if ($erreur_liste2) {
      echo(stripslashes($erreur_liste2));
      } else {
if ($erreur_bouton1) {
      echo(stripslashes($erreur_bouton1));
      } else {
if ($erreur_texte1) {
      echo(stripslashes($erreur_texte1));
      } else {
if ($erreur_texte2) {
      echo(stripslashes($erreur_texte2));
      } else {
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
?>
   
   ,
     
   

      Merci d'indiquez votre Nom,
            <?php
      if ($erreur_champ1) {
      echo($icone);
      }
      ?>
     ,
      ">,
   
      Merci d'indiquez votre Adresse Email pour la confirmation de la commande,
            <?php
      if ($erreur_email1) {
      echo($icone);
      }
      ?>
     ,
      ">,
   
      Matériels,
            <?php
      if ($erreur_liste1) {
      echo($icone);
      }
      ?>
     ,
      <select name="liste1" style="width:200"><option value="">Sélectionner...</option>
<option value="Griffon"<?php
if ($_SESSION['liste1'] == "Griffon") {
echo(" selected");
}
?>>Griffon</option>
<option value="Sctochlocks"<?php
if ($_SESSION['liste1'] == "Sctochlocks") {
echo(" selected");
}
?>>Sctochlocks</option>
<option value="Sucettes"<?php
if ($_SESSION['liste1'] == "Sucettes") {
echo(" selected");
}
?>>Sucettes</option>
</select>
      Quantité,
            <?php
      if ($erreur_liste2) {
      echo($icone);
      }
      ?>
     ,
      <select name="liste2" style="width:40"><option value="">...</option>
<option value="1"<?php
if ($_SESSION['liste2'] == "1") {
echo(" selected");
}
?>>1</option>
<option value="2"<?php
if ($_SESSION['liste2'] == "2") {
echo(" selected");
}
?>>2</option>
<option value="3"<?php
if ($_SESSION['liste2'] == "3") {
echo(" selected");
}
?>>3</option>
<option value="4"<?php
if ($_SESSION['liste2'] == "4") {
echo(" selected");
}
?>>4</option>
<option value="5"<?php
if ($_SESSION['liste2'] == "5") {
echo(" selected");
}
?>>5</option>
<option value="6"<?php
if ($_SESSION['liste2'] == "6") {
echo(" selected");
}
?>>6</option>
<option value="7"<?php
if ($_SESSION['liste2'] == "7") {
echo(" selected");
}
?>>7</option>
<option value="8"<?php
if ($_SESSION['liste2'] == "8") {
echo(" selected");
}
?>>8</option>
<option value="9"<?php
if ($_SESSION['liste2'] == "9") {
echo(" selected");
}
?>>9</option>
<option value="10"<?php
if ($_SESSION['liste2'] == "10") {
echo(" selected");
}
?>>10</option>
</select>
      Habitez-vous sur Paris?,
         <?php
   if ($erreur_bouton1) {
   echo($icone);
   }
   ?>
  ,
      Oui,
Non</td>
<td width="140" valign="top">
      ;">Merci d'indiquez l'adresse de livraison,
         <?php
   if ($erreur_texte1) {
   echo($icone);
   }
   ?>
  ,
      <textarea id="adres" style="display:<?php echo ($_SESSION['button1']== 'oui' ? 'none' : 'block');?>;" name="zone_texte1" cols="45" rows="5"><?=stripslashes($_SESSION['zone_texte1']);?></textarea>,
   
      Si vous avez des commentaires ou autre sur la commande,
            <?php
      if ($erreur_texte2) {
      echo($icone);
      }
      ?>
     ,
      <textarea name="zone_texte2" cols="45" rows="2"><?=stripslashes($_SESSION['zone_texte2']);?></textarea>,
    <td width="30" align="center" valign="top">
Voici le récapitulatif de votre commande,

      <?php
      if ($erreur_texte3) {
      echo($icone);
      }
      ?>
      </td>
      ----
<textarea name=\"zone_texte3\" cols=\"70\" rows=\"5\"><?=stripslashes($_SESSION['zone_texte3']);?></textarea></td>
     ,

   
    &nbsp;
          <table width=\"566\" border=\"0\" align=\"center\">
           <script language="JavaScript">Retour()</script>
&nbsp;
         
       

</form></html>

Donc j'aimerai faire fonctionner mes boutons "ajouter" et "supprimer"
Quand on clique sur "ajouter" ca doit ajouter ce que la personne à choisis dans les liste déroulante dans le champ récapitulalif de la commande
Et quand on clique sur supprimer, ca doit supprimer dans le champs récapitulatif de la commande, juste l'article qui faut supprimer
Donc j'aimerai voir un truc en ligne

par exemple, elle choisi 5 griffons et 2 sucettes
ca devrai afficher dans le champs récapitulatif de la commande

5 griffons
2 succettes

Et si la personne se trompe, si elle clique sur 2 sucettes par exemple et ensuite qu'elle clique sur supprimer, ca supprimer juste 2 sucettes et les 5 griffons sont garder

C'est assez compliquer à faire je pense, mais je n'ai aucune idée de comment faire!

Merci d'avance!
0
Rejoignez-nous