Création d'une base de donnée
Voilà, ce que je souhaite faire est je pense assez compliqué, mais mon employeur n'a pas été satisfait par mon travail.
Ce que j'ai proposé était un formulaire mail dans lequel on trouve un champ référence et l'un quantité.
Mon employeur pense lui que cela va engendrer beaucoup d'erreur de saisie, c'est pourquoi il me demande de faire remplir un champ de désignation automatique.
je suppose que je dois créer une base de données, cela n'est pas réelement problématique de créer une base sous access (ce doit être fait avec ça je pense), ma question concerne principalement le moyen d'intégrer ça dans le code.
je vous présente mon code de formulaire ci-dessous
<div align=center>
<form method=POST action=mail.php >
<input type=hidden name=subject value=Commande>
<table>
<tr><td colspan="3">Votre société:</td>
<td width="180"><input type=text name=Societe size=30></td></tr>
<tr><td colspan="3">Votre Email:</td>
<td><input type=text name=Email size=30></td></tr>
<tr><td colspan="3">Objet:</td>
<td><input type=text name=Sujet size=30></td></tr>
<tr><td colspan="3">Informations complémentaires:</td>
<td><p>
<input type=text name=Informations size=30>
</p> </td></tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td width="65">Référence</td>
<td width="189"><input type="text" name="Reference[]" value="" size="30" /></td>
<td width="61">Quantité</td>
<td><input type="text" name="Quantite[]" value="" size="30" />
</td>
</tr>
<tr>
<td width="65">Référence</td>
<td width="189"><input type="text" name="Reference[]" value="" size="30" /></td>
<td width="61">Quantité</td>
<td><input type="text" name="Quantite[]" value="" size="30" />
</td>
</tr>
<td width="65">Référence</td>
<td width="189"><input type="text" name="Reference[]" value="" size="30" /></td>
<td width="61">Quantité</td>
<td><input type="text" name="Quantite[]" value="" size="30" />
</td>
</tr>
<td width="65">Référence</td>
<td width="189"><input type="text" name="Reference[]" value="" size="30" /></td>
<td width="61">Quantité</td>
<td><input type="text" name="Quantite[]" value="" size="30" />
</td>
</tr>
<td width="65">Référence</td>
<td width="189"><input type="text" name="Reference[]" value="" size="30" /></td>
<td width="61">Quantité</td>
<td><input type="text" name="Quantite[]" value="" size="30" />
</td>
</tr>
<td width="65">Référence</td>
<td width="189"><input type="text" name="Reference[]" value="" size="30" /></td>
<td width="61">Quantité</td>
<td><input type="text" name="Quantite[]" value="" size="30" />
</td>
</tr>
<td width="65">Référence</td>
<td width="189"><input type="text" name="Reference[]" value="" size="30" /></td>
<td width="61">Quantité</td>
<td><input type="text" name="Quantite[]" value="" size="30" />
</td>
</tr>
<td width="65">Référence</td>
<td width="189"><input type="text" name="Reference[]" value="" size="30" /></td>
<td width="61">Quantité</td>
<td><input type="text" name="Quantite[]" value="" size="30" />
</td>
</tr>
<td width="65">Référence</td>
<td width="189"><input type="text" name="Reference[]" value="" size="30" /></td>
<td width="61">Quantité</td>
<td><input type="text" name="Quantite[]" value="" size="30" />
</td>
</tr>
<td width="65">Référence</td>
<td width="189"><input type="text" name="Reference[]" value="" size="30" /></td>
<td width="61">Quantité</td>
<td><input type="text" name="Quantite[]" value="" size="30" />
</td>
</tr>
<td width="65">Référence</td>
<td width="189"><input type="text" name="Reference[]" value="" size="30" /></td>
<td width="61">Quantité</td>
<td><input type="text" name="Quantite[]" value="" size="30" />
</td>
</tr>
<td width="65">Référence</td>
<td width="189"><input type="text" name="Reference[]" value="" size="30" /></td>
<td width="61">Quantité</td>
<td><input type="text" name="Quantite[]" value="" size="30" />
</td>
</tr>
<td width="65">Référence</td>
<td width="189"><input type="text" name="Reference[]" value="" size="30" /></td>
<td width="61">Quantité</td>
<td><input type="text" name="Quantite[]" value="" size="30" />
</td>
</tr>
<td width="65">Référence</td>
<td width="189"><input type="text" name="Reference[]" value="" size="30" /></td>
<td width="61">Quantité</td>
<td><input type="text" name="Quantite[]" value="" size="30" />
</td>
</tr>
<td width="65">Référence</td>
<td width="189"><input type="text" name="Reference[]" value="" size="30" /></td>
<td width="61">Quantité</td>
<td><input type="text" name="Quantite[]" value="" size="30" />
</td>
</tr>
<td width="65">Référence</td>
<td width="189"><input type="text" name="Reference[]" value="" size="30" /></td>
<td width="61">Quantité</td>
<td><input type="text" name="Quantite[]" value="" size="30" />
</td>
</tr>
<td width="65">Référence</td>
<td width="189"><input type="text" name="Reference[]" value="" size="30" /></td>
<td width="61">Quantité</td>
<td><input type="text" name="Quantite[]" value="" size="30" />
</td>
</tr>
<td width="65">Référence</td>
<td width="189"><input type="text" name="Reference[]" value="" size="30" /></td>
<td width="61">Quantité</td>
<td><input type="text" name="Quantite[]" value="" size="30" />
</td>
</tr>
<td width="65">Référence</td>
<td width="189"><input type="text" name="Reference[]" value="" size="30" /></td>
<td width="61">Quantité</td>
<td><input type="text" name="Quantite[]" value="" size="30" />
</td>
</tr>
<td width="65">Référence</td>
<td width="189"><input type="text" name="Reference[]" value="" size="30" /></td>
<td width="61">Quantité</td>
<td><input type="text" name="Quantite[]" value="" size="30" />
</td>
</tr>
<td width="65">Référence</td>
<td width="189"><input type="text" name="Reference[]" value="" size="30" /></td>
<td width="61">Quantité</td>
<td><input type="text" name="Quantite[]" value="" size="30" />
</td>
</tr>
<td width="65">Référence</td>
<td width="189"><input type="text" name="Reference[]" value="" size="30" /></td>
<td width="61">Quantité</td>
<td><input type="text" name="Quantite[]" value="" size="30" />
</td>
</tr>
<td width="65">Référence</td>
<td width="189"><input type="text" name="Reference[]" value="" size="30" /></td>
<td width="61">Quantité</td>
<td><input type="text" name="Quantite[]" value="" size="30" />
</td>
</tr>
<td width="65">Référence</td>
<td width="189"><input type="text" name="Reference[]" value="" size="30" /></td>
<td width="61">Quantité</td>
<td><input type="text" name="Quantite[]" value="" size="30" />
</td>
</tr>
<tr><td colspan=5><div align="left">Commentaires:<br>
<textarea COLS=50 ROWS=6 name=Commentaire ></textarea>
<br />
</div></td></tr>
</table>
<br />
<br> <input type=submit value=Envoyer> -
<input type=reset value=Annuler>
</form>
</div>
Je vous remercie d'avance pour votre aide :D
Configuration: Windows XP Firefox 3.0.1
40 réponses
Un formulaire de commande souffre d’erreurs de saisie, et l’objectif est d’ajouter une désignation automatique via une base de données pour remplacer les libellés manuels des produits. Les solutions évoquées couvrent soit la création d’une base MySQL (ou Access en tant que solution locale), soit l’utilisation de PHP pour interroger les données et générer des champs. Parmi les propositions, l’option consistant à créer une table de références et à alimenter des menus déroulants depuis le serveur permet d’ajouter plusieurs lignes et d’éviter les saisies répétitives. En cas de déploiement web, il est recommandé d’éviter Access et d’opter pour une architecture web avec MySQL et PHP, et d’utiliser des éléments dynamiques tels que des champs [] et des requêtes INSERT/SELECT.
-
petit up, on ne sait jamais...
-
no solution à ça ? :(
-
Bonjour, je viens de reprendre mon code, je vous le donne ici
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Bon de commande</title> <script src="js.js" language="javascript"> </script> </head> <body> <script>var numLign = 0;</script> <form method="post" action="mail.php"> <p><img src="http://www.forfirespirit.com/5.1/logo_BDI-retrace.jpg" /><br /> <img src="http://www.forfirespirit.com/5.1/Dmpib.jpg" /><br /> <input type="hidden" name="subject" value="Commande"/> </p> <table> <tbody> <tr> <td>Votre société</td> <td width="180"> <input type="text" name="Societe" size="30" /> </td> </tr> <tr> <td>Votre Email</td> <td> <input type="text" name="Email" size="30" /> </td> </tr> <tr> <td>Objet</td> <td> <input type="text" name="Sujet" size="30" /> </td> </tr> <tr> <td>Informations complémentaires</td> <td> <p> <textarea name="Informations" cols="30" rows="3"></textarea> </p> </td> </tr> </tbody> </table> <form method="post" onsubmit="" action=""> <table border="0" cellspacing="0" id='articles'><tr><td>Référence:</td><td>Désignation:</td><td>Quantité:</td></table> <div id="msg"> <input type="button" onclick="addLigne('articles');" value="Ajouter un article" /> - <input type="submit" value="Transmettre la commande" /><br /> </form> <script type="text/javascript"> //LA FONCTION QUI FAIT PEUR UN PEU PUISQU'ELLE UTILISE DES PROTOCOLES ACTIVEX -> L'AJAX !! function maFonctionAjax(Id, Nom) { var OAjax; if (window.XMLHttpRequest) OAjax = new XMLHttpRequest(); else if (window.ActiveXObject) OAjax = new ActiveXObject('Microsoft.XMLHTTP'); //LANCE LE FICHIER PHP AVEC LA VALEUR DU CHAMP ref OAjax.open('GET',"maPageDeRequPHP.php?id="+Id.value,true); OAjax.onreadystatechange = function() { if (OAjax.readyState == 4 && OAjax.status==200) { if (document.getElementById) { //AFFICHE LA REPONSE DANS LE CHAMP nom document.getElementById('Nom'+Nom).value=OAjax.responseText; } } } OAjax.setRequestHeader('Content-type','application/x-www-form-urlencoded'); OAjax.send('Id='+Id+'&Nom='+Nom); } function addLigne(table) { numLign++; var parent = document.getElementById(table); var new_tr = document.createElement("tr"); var td1 = document.createElement("td"); var td2 = document.createElement("td"); var td3 = document.createElement("td"); var td4 = document.createElement("td"); td1.innerHTML = '<input type="text" name="Ref" value="" size="8" id="ref01" onchange="return maFonctionAjax(this,'+numLign+');" />'; td2.innerHTML = '<input type="text" name="Nom'+numLign+'" id="Nom'+numLign+'" value="" size="30" />'; td3.innerHTML = '<input type="text" name="Quantite" value="" size="8" onchange="checkQuantity(this.value);" />'; td4.innerHTML = '<input type="button" onclick="this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode);" value="Enlever" />'; new_tr.appendChild(td1); new_tr.appendChild(td2); new_tr.appendChild(td3); new_tr.appendChild(td4); parent.appendChild(new_tr); } </script> </body> </html>
et le fichier qui envoie le mail
<?php $to = ""; $from = "From: " . $TO; $subject = "commande"; $message=""; if(isset($_POST['subject'])){ $message.=" Societe: ".$_POST['Societe']."\n"; $message.=" Email: ".$_POST['Email']."\n"; $message.=" Objet: ".$_POST['Sujet']."\n"; $message.="Information complementaire: ".$_POST['Informations']."\n"; $ref01=$_POST['ref01']; $Quantite=$_POST['Quantite']; $Designation=$_POST['Designation']; for($i=0;sizeof($Ref)>$i;$i++){ if($ref01[$i]!="" && $Quantite[$i]!="" && $Designation[$i]!="") $message .=" ref01 :".$ref01[$i]." Quantite ".$Quantite[$i]." Designation ".$Designation[$i]."\n"; } } mail($to, $subject, $message, $from); Header("Location: l"); ?>
mon problème est que dans le mail que je reçois, je n'ai plus les lignes de désignation référence et quantité qui aparaissent. -
je viens de m'apercevoir que le code ne fonctionne pas avec IE, je travaille avec forefox, et après essai, j'ai vu que l'automatisation n'était pas fonctionelle sous IE
-
pas d'idée pour rendre les deux lignes indépendantes ?
-
n'y a-t-il pas une variable à insérer pour le champ 'nom' afin qu'il soit indépendant ?
-
non, l'affichage automatisé ne se fait plus :(
-
Contributeurremplace var input_nom = getByAt(obj.parentNode.parentNode, "input", "name", "Nom[]");
par var input_num = obj.parentNode.parentNode.getElementsByTagName("input")[1];
et
for (var i=0; i<input_nom.snapshotLength; i++){
input_nom.snapshotItem(i).value = xhr.responseText;
}
par
input_nom.value = xhr.responseText;
cela devrait marchait. -
super, le bouton ouvre bien la ligne, voilà une bonne avancée.
cependant, lorsque j'entre deux références, c'est la même désignation qui s'affiche.
http://www.flyteam.online.fr/formulaire/essai.php
merci beaucoup ! -
ContributeurVoila rapidement ce que je pense correct :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta name="generator" content="HTML Tidy for Windows (vers 14 February 2006), see www.w3.org"> <title></title> </head> <body> <form method="post" action="mail.php"> <input type="hidden" name="subject" value="Commande"/> <table> <tbody> <tr> <td>Votre société</td> <td width="180"> <input type="text" name="Societe" size="30" /> </td> </tr> <tr> <td>Votre Email</td> <td> <input type="text" name="Email" size="30" /> </td> </tr> <tr> <td>Objet</td> <td> <input type="text" name="Sujet" size="30" /> </td> </tr> <tr> <td>Informations complémentaires</td> <td> <p> <textarea name="Informations" cols="30" rows="3"></textarea> </p> </td> </tr> </tbody> </table> <table id="articles"> <tbody> <tr> <th>Référence</th> <th>Désignation</th> <th>Quantité</th> </tr> </tbody> </table> <input type="button" onclick="addLigne('articles');" value="Ajouter un article" /> <input type="submit" value="Envoyer" /> </form> <script type="text/javascript"> /* retourne une liste des nodes correspondantes fonctions applicables sur la sortie : snapshotLength : retourne le nombre d'elements snapshotItem(i): retourne l'element i */ function getByAt(parent, balise, attribut, valeur) { if (valeur!="") { return document.evaluate( "//"+balise+"[@"+attribut+"=\""+valeur+"\"]", parent, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); }else{ return document.evaluate( "//"+balise+"[@"+attribut+"]", parent, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); } } function makeXHR(){ var xmlHttp; try { // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); } catch (e) { // Internet Explorer try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert("Your browser does not support AJAX!"); return false; } } } return xmlHttp; } function maFonctionAjax(obj){ var xhr = makeXHR(); var input_nom = getByAt(obj.parentNode.parentNode, "input", "name", "Nom[]"); //LANCE LE FICHIER PHP AVEC LA VALEUR DU CHAMP ref xhr.open('GET',"maPageDeRequPHP.php?id="+encodeURIComponent(obj.value), true); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status==200){ if (document.getElementById){ //AFFICHE LA REPONSE DANS LE CHAMP nom for (var i=0; i<input_nom.snapshotLength; i++){ input_nom.snapshotItem(i).value = xhr.responseText; } } } } //xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded'); xhr.send(null); return null; } function addLigne(table) { var parent = document.getElementById(table); if (parent.getElementsByTagName("tbody")) parent = parent.getElementsByTagName("tbody")[0]; var new_tr = document.createElement("tr"); var td1 = document.createElement("td"); var td2 = document.createElement("td"); var td3 = document.createElement("td"); var td4 = document.createElement("td"); td1.innerHTML = '<input type="text" name="Ref[]" value="" size="6" onchange="return maFonctionAjax(this);" />'; td2.innerHTML = '<input type="text" name="Nom[]" value="" size="15" />'; td3.innerHTML = '<input type="text" name="Quantite[]" value="" size="6" onchange="checkQuantity(this);" />'; td4.innerHTML = '<input type="button" onclick="this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode);" value="Enlever" />'; new_tr.appendChild(td1); new_tr.appendChild(td2); new_tr.appendChild(td3); new_tr.appendChild(td4); parent.appendChild(new_tr); } </script> </body> </html> // Fichier mail.php <?php $to = ""; $from = "From: " . $_POST['Email']; $subject = $_POST['subject']; $message=""; if(isset($_POST['subject'])){ $message.=" Societe: ".$_POST['Societe']."\n"; $message.=" Email: ".$_POST['Email']."\n"; $message.=" Objet: ".$_POST['Sujet']."\n"; $message.="Information complementaire: ".$_POST['Informations']."\n"; foreach($_POST['Ref'] as $key => $value){ $message .=" Ref :".$_POST['Ref'][$key]." quantite ".$_POST['Quantite'][$key]." Nom ".$_POST['Nom'][$key]."\n"; } mail($to, $subject, $message, $from); header("Location: l"); } ?> -
avec ceci les barres ne s'ouvrent pas.
en revanche, ne serait-t-il pas plus simple d'avoir plusieurs lignes directement plutôt que de passer par ce bouton ? -
un code de ce type là ?
<script language="javascript"> <table width="392" border="0"> <tr> <td width="61">Référence</td> <td width="36"><input name="Ref[]" id="Ref" type="text" size="6" onchange="maFonctionAjax(this.value,'Nom');return false"; /></td> <td width="70">Désignation</td> <td width="132"><input name="Nom[]" id="Nom" type="text" size="22" /></td> <td width="51">Quantité</td> <td width="16"><input name="Quantite[]" id="quantite" type="text" size="2" /></td> </tr> function addLigne() { var new_tr = document.createElement("tr"); new_tr.innerHTML = '<td width="65">Ref</td><input type="text" name ="Ref['+nombre+'] value="" size="6" onchange="maFonctionAjax(this.value,'Nom');return false"; /></td> <td>Nom</td><td><input type="text" name="Nom['+nombre+']" value="" size="15" /></td><td width="61">Quantité</td><td><input type="text" name="Quantite['+nombre+']" value="" size="6" onchange="checkQuantity(this);" /></td><td><input type="button" onclick="nombre--;this.parentNode.parentNode.removeChild(this.parentNode);" value="Enlever" /></td>'; document.getElementById("lignes").getElementsByTagName("tbody")[0].appendChild(new_tr); nombre++; } </script>
merci pour ta réponse -
ContributeurDans ta <table width="434"....>
au lieu de name="Ref", met name="Ref[]", idem pour les autres champs, tu pourras ainsi avoir un tableau de valeur directement et donc tu pourras mettre plusieurs lignes en javascript par un appendChild() en cliquant sur un <input type="button" /> -
Bonjour,
je reviens vers vous après de nombreuses modifications.
en effet, j'ai tenté l'ajax, et j'ai à peu près réussi mon opération.
il mem anque quelques petits points à éclaircir avant d'avoir complété le travail.
je vous donne les codes avant de m'expliquer<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Document sans nom</title> <script src="js.js" language="javascript"> </script> </head> <body> <div align="center"> <form method="post" action="mail.php"> <div align="center"> <table> <input type="hidden" name="subject" value="Commande"/> <tr> <td> Votre société: </td> <td width="180"><input type="text" name="Societe" size="30" /> </td> </tr> <tr> <td> Votre Email: </td> <td><input type="text" name="Email" size="30" /> </td> </tr> <tr> <td> Objet: </td> <td><input type="text" name="Sujet" size="30" /> </td> </tr> <tr> <td> Informations complémentaires: </td> <td><p> <textarea name="Informations" cols="30" rows="3"></textarea> </p></td> </tr> </table> </div> <form method="post" onsubmit="" action=""> <table width="434" border="0" align="center" cellspacing="0"> <tr> <td width="64">Reference:</td> <td width="72"> <input name="Ref" id="Ref" type="text" size="6" onchange="maFonctionAjax(this.value,'Nom');return false";return false"> </td> <td width="70">Désignation</td> <td width="132"><input name="Nom" id="Nom" type="text" size="22" /></td> <td width="54">Quantite:</td> <td width="54"><input name="Quantite" id="quantite" type="text" size="2" /></td> </tr> </table> <div align="center"></div> <div align="center"></div> <div align="center"> <input type="submit" value="Envoyer" /> - <input type="reset" value="Annuler" /> </div> </form> <div id="msg"></div> </body> </html>
_________________________________________________________________________
<? define('LOGIN', ""); define('PASSWORD', ""); define('SERVER', ""); define('BASE', ""); $connexion = mysql_connect (SERVER, LOGIN, PASSWORD) ; if(!$connexion) { $message = "Le serveur ".SERVER." ne répond pas correctement. Merci de bien vouloir réessayer dans quelques instants." ; } if(!mysql_select_db(BASE, $connexion)) { $message = "Le base ".BASE." ne répond pas correctement. Merci de bien vouloir réessayer dans quelques instants." ; } //TA REQUETE SQL $requete = "SELECT * FROM guigui WHERE ref='".$_GET['id']."'" ; $result = mysql_query($requete, $connexion) ; if(!$result) echo mysql_error(); //TEST DU NOMBRE DE RESULTAT DE TA REQUETE if (mysql_num_rows($result)>0){ while($news = mysql_fetch_object($result)) { $resultat = $news->prod; } //SI IL N'Y A PAS DE RESULAT }else{$resultat = 'aucune produit ne correspond';} echo $resultat; ?>
________________________________________________________________________
function maFonctionAjax(Id, Nom) { var OAjax; if (window.XMLHttpRequest) OAjax = new XMLHttpRequest(); else if (window.ActiveXObject) OAjax = new ActiveXObject('Microsoft.XMLHTTP'); //LANCE LE FICHIER PHP AVEC LA VALEUR DU CHAMP ref OAjax.open('GET',"maPageDeRequPHP.php?id="+Id,true); OAjax.onreadystatechange = function() { if (OAjax.readyState == 4 && OAjax.status==200) { if (document.getElementById) { //AFFICHE LA REPONSE DANS LE CHAMP nom document.getElementById('Nom').value=OAjax.responseText; } } } OAjax.setRequestHeader('Content-type','application/x-www-form-urlencoded'); OAjax.send('Id='+Id+'&Nom='+Nom); }
__________________________________________________________________________________
<?php $to = ""; $from = "From: " . $TO; $subject = "commande"; $message=""; if(isset($_POST['subject'])){ $message.=" Societe: ".$_POST['Societe']."\n"; $message.=" Email: ".$_POST['Email']."\n"; $message.=" Objet: ".$_POST['Sujet']."\n"; $message.="Information complementaire: ".$_POST['Informations']."\n"; $Ref=$_POST['Ref']; $Quantite=$_POST['Quantite']; $Nom=$_POST['Nom']; for($i=0;sizeof($Ref)>$i;$i++){ if($Ref[$i]!="" && $Quantite[$i]!="" && $Nom[$i]!="") $message .=" Ref :".$Ref[$i]." quantite ".$Quantite[$i]." Nom ".$Nom[$i]."\n"; } } mail($to, $subject, $message, $from); Header("Location: l"); ?>
voilà, mon problème actuel étant que je n'arrive pas à mettre plusieurs lignes pour la commande, lorsque je les dupplique, quand j'entre la référence dans la deuxième ligne, la désignation apparait dans la première.
il faudrait donc réussir à recréer cette première ligne, mais de manière autonome, et lorsque je reçois le mail de commande, je reçois ceci
Societe: entreprise
Email: email
Objet: commande :)
Information complementaire: hello
Ref :9 quantite 3 Nom p
enfait, je ne reçois qu'un caractère concernant la ligne de produits !
auriez-vous une idée ?
merci d'avance -
pas d'idée ? ;(
-
ok, le menu s'ouvre à présent, en revanche, cela me donne ceci
http://www.forfirespirit.com/scr.jpg
<div align="center"> <form method="post" action="mail.php"> <input type="hidden" name="subject" value="Commande"/> <table> <tr> <td> Votre société: </td> <td width="180"> <input type="text" name="Societe" size="30" /> </td> </tr> <tr> <td> Votre Email: </td> <td> <input type="text" name="Email" size="30" /> </td> </tr> <tr> <td> Objet: </td> <td> <input type="text" name="Sujet" size="30" /> </td> </tr> <tr> <td> Informations complémentaires: </td> <td> <p> <input type="text" name="Informations" size="30" /> </p> </td> </tr> </table> <script> function checkQuantity(obj){ if (isNaN(obj.value)){ alert("La valeur rentrée n'est pas valide comme quantité."); obj.value = 0; } } function addLigne(){ var new_tr = document.createElement("tr"); <?php echo 'new_tr.innerHTML = \'<td width="65">Référence</td><input type="text" name ="Reference[] value="" size="10""> '; $link = @mysql_pconnect("mysql5-2", "forfires", "okowgl8w"); @mysql_select_db("forfires", $link); $result = @mysql_query("SELECT * FROM references ORDER BY reference;"); while ($ligne = @mysql_fetch_assoc($result)){ echo '<option value="'.$ligne["reference"].'">('.$ligne["quantite"].') '.$ligne["designation"].'</option>'; } echo '</select></td><td width="61">Quantité</td><td><input type="text" name="Quantite[]" value="" size="10" onchange="checkQuantity(this);" /></td><td><input type="button" onclick="this.parentNode.parentNode.removeChild(this.parentNode);" value="Enlever" /></td>\';'; ?> document.getElementById("lignes").getElementsByTagName("tbody")[0].appendChild(new_tr); } </script> <input type="button" onclick="addLigne();" value="Ajouter une référence de commande" /> <table id="lignes"> <tbody> </tbody> </table> <input type="submit" value="Envoyer" /> - <input type="reset" value="Annuler" /> </form> </div>
La désignation n'apparait pas dans la ligne, je ne sais donc pas encore si l'affichage automatisé de la désignation fonctionne
de plus, les lignes de commande ne s'affichent pas sous IE, que sous firefox
une idée ?
merci d'avance
merci :) -
j'ai fait l'essai avec easyphp pour vérifier si ça ne venait pas de mon serveur, mais non, toujours pareil
-
j'ai beau avoir ajouté une référence dans la base (que je ne retrouve pas d'ailleurs :p)
les lignes ne s'ouvrent toujours pas :( -
Contributeuressaie INSERT INTO `references` (`id` ,`reference` ,`designation`) VALUES (NULL , '1000-0001', 'article de sport');
-
j'ai cette erreur qui m'est retournée lorsque je fais
INSERT INTO references VALUES (NULL, '1000-0001', 'article de sport');
INSERT INTO references VALUES (NULL, '1000-0002', 'équipement stéréo');
dans SQL
requête SQL:
INSERT INTO REFERENCES VALUES ( NULL , '1000-0001', 'article de sport' ) ;
MySQL a répondu:Documentation
#1064 - Erreur de syntaxe près de 'references VALUES (NULL, '1000-0001', 'article de sport')' à la ligne 1
- 1
- 2