Aide pour realiser un bon de commande en php et html

Fermé
flexi2202 Messages postés 3795 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 avril 2024 - Modifié le 23 sept. 2020 à 21:02
flexi2202 Messages postés 3795 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 avril 2024 - 26 sept. 2020 à 11:46
bonjour a tous
ayant des connaissance limite en php et html j essaye de réaliser un bon de commande
voici un exemple de ce que je suis en train de réaliser mais cela n est qu une ébauche
pour l instant je bloque sur les frais d envois j ai ajouter une liste déroulante
avec le choix du mode de livraison mais je souhaiterais que le prix suivant le choix puisse s afficher en face et être ajouter au prix total de la commande
merci de l aide
<html>
<head>
<title>Un exemple simple de formulaire</title>
<script type="text/javascript">

var port = 5.95;
var tva = 0.076;

function calculerPrix
(champQte) {
var champPrix = champQte.form.elements[champQte.name + "prix"];
var champPrixUnite = champQte.form.elements[champQte.name + "unite"];

var
prixUnite = parseFloat(champPrixUnite.value);
var qte = champQte.value;
if (qte == "") qte = 0;
else if (isNaN(qte)) qte = 0;
else qte = Math.floor(qte);
if
(qte < 0) qte = 0;

var prix = prixUnite * qte;

champPrix.value  = formatPrix(prix);

calculerTotal(champQte.form);
}
function
calculerTotal (form) {

var champTva = form.elements['tva'];
var champPort = form.elements['port'];
var champTotal = form.elements['total'];
champPort.value
= formatPrix(port);

var total = 0;
for (var i in form.elements) {
if (
//form.elements[i].name
i.toLowerCase().indexOf("prix") != -1)
total += parseFloat(form.elements[i].value);
}
total += port;
var tvaCalc = tva * total;
tvaCalc = Math.round(tvaCalc*100)/100.0;

champTva.value
= formatPrix(tvaCalc);
total += tvaCalc;

champTotal.value = formatPrix(total);
}
function formatPrix (n) {
n = Math.round(n*100)/100.0;
var
str = ""+n+"";

var i = str.indexOf(".");
if (i == -1) str += ".00";
else if (i == str.length-2) str += "0";
return str;
}

// -->
</script>

</head>
<body>

<H
<HR>


<form method="post" action="formulaire-simple.cgi">
<H2>bon de commande </H2>
<form name="f1">
<p>Commandez nos articles !<br />
</p>
<p>
<table>
<tr>
<td ></td>
<td>Article</td>
<td>Quantité</td>
<td>Prix par unité</td>
<td>Prix selon quantité</td>
</tr>
<tr>
<td ></td>
<td>

<select name="couleur">
 <option selected>blanc
 <option>jaune
 <option>orange
 <option>rouge
 <option>vert
 <option>bleu
 <option>violet
 <option>noir
 </select>
 </td>
 <td>
 <input type="text" size="3" name="c1" onchange="calculerPrix(this);" />
 </td>
 <td>
 <input type="text"size="6" name="c1unite" value="29.90" />
 </td>
 <td> 
 <input type="text" name="c1prix" size="6" value="0.00" />
 </td>
 </tr>
<tr>
<td ></td>
<td>

<select name="couleur">
 <option selected>blanc
 <option>jaune
 <option>orange
 <option>rouge
 <option>vert
 <option>bleu
 <option>violet
 <option>noir
 </select></td>
 <td>
<input type="text" size="3" name="c2" onchange="calculerPrix(this);"  />
</td>
<td>
 <input type="text" size="6" name="c2unite" value="89.90" />
 </td>
 <td>
<input type="text" name="c2prix" size="6" value="0.00" />
</td>
</tr>
<tr>
<td ></td>
<td>
<select name="couleur">
 <option selected>blanc
 <option>jaune
 <option>orange
 <option>rouge
 <option>vert
 <option>bleu
 <option>violet
 <option>noir
 </select></td>
 <td> 
 <input type="text" size="3" name="c3" onchange="calculerPrix(this);" />
 </td>
 <td> 
 <input type="text" size="6" name="c3unite" value="9.95" /></td><td> <input type="text" name="c3prix" size="6" value="0.00" />
 </td>
 </tr>
 <tr>

<td height="40px"></td>

</tr>
<tr>

<td ">choix mode de livraison </td>
<td>
<select name="couleur">
 <option selected>mondial relay belgique
 <option>envois postal belgique 
 <option>mondial relay france 
 <option>envois postal france 
 <option>mondial relay autre pays
 <option>envois postal autre pays
 
 </select></td>
<td> </td><td> </td>
<td> 
<input type="text" name="port" value="6.95" size="6" />
 </td>
</tr>

<tr>

<td>TOTAL</td>
<td ></td>
<td> </td>
<td> </td>
<td> 
<input type="text" name="total"value="0.00" size="6" /> 
</td>
</tr>
</table>
</p>
</form>
Quel est votre prénom ? <input name="prenom">
<P>
Quel est votre rue? <input name="rue">
<P>
<P>
votre numero? <input name="numero">
<P>
<P>
votre la localite? <input name="localite">
<P>
<P>
votre ville? <input name="ville">
<P>


Aimez vous l'informatique ?
<input type="radio" name="choix" value="oui" checked> Oui
ou
<input type="radio" name="choix" value="non"> Non
<P>


Veuillez expliquer brièvement ci-dessous le choix que vous venez de faire :
<input name="message" size=60,5>
<P>


Cliquez sur <input type="submit" value="Valider"> pour soumettre votre requête.,
 sinon <input type="reset" value="Annuler">
</form>





</body>
</html>

A voir également:

12 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
23 sept. 2020 à 21:07
Bonjour,

Tu parles de php ...... mais je n'en vois pas une ligne !


Je préscise également que ton code html est faux

<select name="couleur">
 <option selected>mondial relay belgique
 <option>envois postal belgique 
 <option>mondial relay france 
 <option>envois postal france 
 <option>mondial relay autre pays
 <option>envois postal autre pays
 
 </select>

Le name de ton select n'est pas le bon.... tu as déjà un couleur au dessus...
Tes balises option ne sont pas fermées
Tu n'as pas mis d'attribut value dans tes options.

Commence par corriger ton html
Ensuite reviens nous voir en expliquant si tu es bien en PHP .... ( mais vu ta question.. c'est d'avantage du javascript ...)
Et explique également comment tu fais le lien entre ton choix du mode de livraison .. et les frais...(où sont stockées ces données ?? un array ? en Bdd ? dans un fichier de config ??)


0
flexi2202 Messages postés 3795 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 avril 2024 187
23 sept. 2020 à 22:36
bonsoir
merci de l aide en fait j essaye de m inspirer de ce modèle que je viens de trouver
https://jsfiddle.net/gp1f2x5n/1/
mais lorsque je télécharge les codes html , css et javascript
le bouton ajouter en as du formulaire ne fonctionne pas
et ensuite je souhaiterais qu une fois que ce bon de commande est rempli qu il me soit envoyé en php

pour celui que je viens de poster j ai tenter de réunir deux codes mais apparemment je me suis planter
donc je souhaiterais savoir si nous pourrions essayer de faire fonctionner ce nouveau modèle que j ai trouve

merci de l aide
0
flexi2202 Messages postés 3795 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 avril 2024 187
Modifié le 23 sept. 2020 à 23:39
bonsoir a tous
merci de votre aide
voila je suis parvenu a trouver une base en javascript pour un bon de commande que je dois encore modifier les choses suivantes
lors d un choix de séance une référence soit indique de façon automatique ainsi que le tarif
puis ajouter les frais d envois suivant le mode de livraison
pour finir tout additionner

mais a présent je souhaiterais que ce formulaire me soit envoyé en php et que le client reçoive un message de confirmation

<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>Titre de la page</title>
<link rel="stylesheet" href="style.css">
<script type="text/javascript">
function addRow(tableID) {


var table = document.getElementById(tableID);

var rowCount = table.rows.length;
var row = table.insertRow(rowCount);

var colCount = table.rows[0].cells.length;

for(var i=0; i<colCount; i++) {

var newcell = row.insertCell(i);

newcell.innerHTML = table.rows[1].cells[i].innerHTML;
//alert(newcell.childNodes);
switch(newcell.childNodes[0].type) {
case "text":
newcell.childNodes[0].value = "";
break;
case "checkbox":
newcell.childNodes[0].checked = false;
break;
case "select-one":
newcell.childNodes[0].selectedIndex = 0;
break;
}
}
}

function deleteRow(tableID) {
try {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;

for(var i=0; i<rowCount; i++) {
var row = table.rows[i];
var chkbox = row.cells[0].childNodes[0];
if(null != chkbox && true == chkbox.checked) {
if(rowCount <= 2) {
addRow(tableID);
// alert("Attention la 1ère ligne n'est pas supprimable. La quantité est initialisée à 0");
// break;
}
table.deleteRow(i);
rowCount--;
i--;
}


}
}catch(e) {
alert(e);
}
}

function testValue(selection) {
if (selection.value == "Dawn") {
// do something
}
else if (selection.value == "Noon") {
// do something
}
else if (selection.value == "Dusk") {
// do something
}
else {
// do something
}
}

</script>
</head>
<body>

Remplir le formulaire pour valider votre commande

<form action="inscription.php" method="post">
<fieldset class="coordonnees">
<legend>Vos Coordonnées</legend>
<label for="nom">Nom</label>
<input id="nom" name="nom" pattern="[a-Z]{*}" type="text" si>
<br>
<label for="prenom">Prénom</label>
<input id="prenom" name="prenom" type="text">
<br>
<label for="mail">mail</label>
<input id="mail" name="mail" type="text">
<br>
<label for="mail_conf">Confirmer mail</label>
<input id="mail_conf" name="Confirmer mail" type="text">
<br>
<legend>Adresse</legend>
<label>Rue</label>
<input id="rue" name="rue" type="text">
<br>
<label>Code postal</label>
<input id="code-postal" name="code-postal" type="text"><br>
<label>Ville</label>
<input id="ville" name="ville" type="text"><br>
</fieldset>
<fieldset class="Votre commande">
<legend>Votre commande</legend>


<title> Tableau de commande </title>


<table border="1" id="TableID" style="width: 350pxpx;">
<tr>

<th bgcolor="grey" td="" width="15"></th><th bgcolor="grey" td="" width="90">Séance</th><th bgcolor="grey" td="" width="90">Référence</th><th bgcolor="grey" td="" width="75">Format</th><th bgcolor="grey" td="" width="45">Impression</th><th bgcolor="grey" td="" width="45">Quantité</th><th bgcolor="grey" td="" width="45">Tarif</th></tr>
<tr>
<td><input name="chk" size="15" type="checkbox" /></td>
<td>
<select name="Séance" style="width: 90;">
<option selected="" value="Choix">Sélectionner votre séance</option>
<option selected="" value="Séance 1">Séance 1</option>
<option value="Séance 2">Séance 2Séance 2</option>
</select>

<td><input name="Ref" size="25" type="text" /></td>
<td>
<select name="Format" style="width: 90;">
<option value="10*15">10*15</option>
<option value="11*15">11*15</option>
<option value="20*30">20*30</option>
</select>
</td>
<td>
<select name="Impression" style="width: 10;">
<option value="Mat">Mat</option>
<option value="Brillant">Brillant</option>
<option value="Satiné">Satiné</option>
</select>
</td>
<td>
<select name="Quantité" style="width: 20;">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
</td>

<td><input name="Prix" readonly="" type="text" /></td>

</td></tr>
</table>

</fieldset>

<input onclick="addRow('TableID')" type="button" value="Ajouter" />
<input onclick="deleteRow('TableID')" type="button" value="Supprimer" />

</body>
</html>
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
24 sept. 2020 à 01:39
Pour que ça te l'envoi en php.... il faut faire un submit de ta form.
Je ne vois aucun bouton pour ça..
De plus, on ne sait rien de ton fichier inscription.php ......
Et puis, tu bosses en local sur ton ordi ( à travers un logiciel tel que laragon, wamp, xampp, easyphp ... ?? )
Ou bien tu héberges ta page sur un serveur ?
0
flexi2202 Messages postés 3795 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 avril 2024 187
24 sept. 2020 à 10:06
merci pour l aide
c est justement la ou je bloque avec le php
je ne vois pas bien comment je dois m y prendre pour l envoyer
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
24 sept. 2020 à 11:31
Tu ne réponds pas à mes questions.... dans ces conditions comment espères tu qu'on puisse t'aider ????!!
0
flexi2202 Messages postés 3795 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 avril 2024 187
24 sept. 2020 à 11:53
bonjour
merci pour l entraide
alors pour répondre aux questions
je suis pécheur et cela arrive de temps en temps de vendre du petit matériel mais pas assez pour prendre un hébergement payant
donc j essaye de trouver un hébergeur gratuit pour l envoi du bon de commande en php ou d une autre façon
pour l instant j ai trouve 000webhost.com
donc la page est hébergée chez ce fournisseur

lorsque tu me parles de faire un sublim de ma form (je vois plus ou moins ce que cela veux dire ...)
c est un fichier pour l instant en javascript et en html dans lequel je souhaiterais ajouter du php pour un envois vers mon adresse mail

le but de ce formaulaire de commande
serait que le client entre ces coordonnées
choisisse le matériel
et moyen de livraison
que le tout soit calcule
puis que l ensemble lui soit envoyé et que je reçoive une copie

j ai essaye de trouver des modèles que j aurais pu modifier sur le net mais ils sont très rare
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
24 sept. 2020 à 12:18
Je ne sais pas ce que tu as tapé comme recherche sur le net.... mais des exemples de formulaires de contact... il y en a à foisons.
par exemple : https://www.commentcamarche.net/faq/4516-webmaster-un-formulaire-de-contact-pour-votre-site
0

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

Posez votre question
flexi2202 Messages postés 3795 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 avril 2024 187
24 sept. 2020 à 12:47
merci pour le lien
oui des formulaires de contacts mais pas des bons de commandes
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
24 sept. 2020 à 12:53
Oui mais ça te donne une bonne base pour faire de l'envoi de données en PHP par mail...
0
flexi2202 Messages postés 3795 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 avril 2024 187
24 sept. 2020 à 16:09
je vais y jeter un oeil merci
0
flexi2202 Messages postés 3795 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 avril 2024 187
24 sept. 2020 à 21:23
comment ca marche ne prends pas mon message
0
flexi2202 Messages postés 3795 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 avril 2024 187
24 sept. 2020 à 21:56
oupsss désolé cela fonctionne
le courrier était dans les spams
0
flexi2202 Messages postés 3795 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 avril 2024 187
24 sept. 2020 à 22:39
bonsoir
a présent que cela fonctionne
je tente de le transformer en bon de commande
j ai donc ajouter un morceau de code dans le html et ajouter un fichier JS
mais déjà les premiers problèmes apparaisse avec le code html
pour l aide du html je peux demander ici ou je dois poster dans al section html
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
25 sept. 2020 à 02:00
je pense que ça peut être traité comme une nouvelle question (l'envoie de mail en php étant le sujet de cette discussion que tu vas pouvoir mettre en résolu )
et donc oui, ouvrir une nouvelle question propre à ce nouveau souci dans le forum html.
0
flexi2202 Messages postés 3795 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 avril 2024 187
25 sept. 2020 à 06:20
merci pour la réponse
mais je vais plutôt mettre en suspens car une fois le html mis en ordre faudra envoyé le tout
0
flexi2202 Messages postés 3795 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 avril 2024 187
Modifié le 26 sept. 2020 à 11:29
bonjour
un petit up svp merci
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
26 sept. 2020 à 11:37
Un up de quoi ???
Tu as dis toi même que tu mettais en suspend..
Donc ben ... Qu'en est-il ??
Où en es tu ?
Sur quoi bloques tu ?
A quoi ressemble ton code désormais ??

Que de questions.... Sans lesquelles personne (hormis un devin peut-être...) Ne saurait te répondre !
0
flexi2202 Messages postés 3795 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 avril 2024 187
26 sept. 2020 à 11:46
désolé me suis trompe de sujet
en fait je bloque sur plusieurs choses et depuis plusieurs jours j écume le net afin de trouver un exemple de bon de commande que je pourrais adapter a ma convenance
tout ce que j ai pour l instant est un formulaire dans lequel j essaye d integrer un morceau de code html pour le bon de commande
pour l instant je bloque sur soucis en html
https://forums.commentcamarche.net/forum/affich-36862321-soucis-avec-un-morceau-de-code-en-html?jrRbgNTBHfJS1Grd29tNS-82sTuA7XL4cLjsezgN0rU#newanswer
0