je ne comprend pas le problème surtout que je demande que "name" et non "value"
A mon avis, pour ajouter un article au panier, l'algo lit le DOM pour récup les infos de chaque élément. Par exemple, pour constituer "item.name", il va aller lire class="item_name".
Or, dans class="item_name", il n'y a pas d'espace. Comme on peut le voir par exemple ici : (pour lui, "boeuf" n'est pas caché. Voilà pourquoi il l'ajoute au "name").
<td width="50px" class="item_name">Assortiment<span class="item_value" style="visibility:hidden">boeuf</span></td>
Voila pourquoi, "Assortiment" est collé à "boeuf". Même explication pour les autres. Configure bien ce qu'il y a dans ce <td class="item_name"> et ça va rouler tout seul
ps : ne cherche pas à afficher item.value. A mon avis, ça n'existe pas.
Petite question encore, comment faire envoyer un petit formulaire avec le nom, l'adresse et un petit message en même temps que le panier ?? je les déjà fait seul mais avec le panier j'y arrive pas..
Le nom et l'adresse du destinataire ? Je n'ai pas pris le temps de regarder ta page, mais cela devrait néanmois t'inspirer :
Coté interface, il faut que tu ajoutes trois champs à ta page, par exemple au dessus de ton bouton pour envoyer le mail (un champ email / nom du destinataire, un message à son attention) :
1 2 3 4 5 6
| <div id="menu_mail">
Email : <input type="input" name="jcmail_temp" id="jcmail_temp" value = "mail du destinataire" /> <br>
Nom : <input type="input" name="jcname_temp" id="jcname_temp" value = "nom du destinataire" /> <br>
Message : <textarea name="jcmessage_temp" id="jcmessage_temp" cols="20" rows="4"></textarea><br><br>
<a href="confirmation mail.html">envoyer le panier par email</a>
</div> |
Coté JS, dans la fonction emailCheckout, on récupère les données et on les fournies au formulaire temporaire qui envoie le caddie :
1 2 3 4
| // A ajouter sous les autres appendChild
form.appendChild(me.createHiddenElement("jcname", document.getElementById('jcname_temp').value));
form.appendChild(me.createHiddenElement("jcmessage", document.getElementById('jcmessage_temp').value));
form.appendChild(me.createHiddenElement("jcmail", document.getElementById('jcmail_temp').value)); |
Coté PHP, on va récupérer ces nouveaux champs et les afficher à la suite du caddie (par exemple, à adapter bien sûr) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| <?php
if ($_POST['jcitems'] && $_POST['jcmail']) {
$to = $_POST['jcmail'];
$subject = 'Panier du site machin envoyé à '.$_POST['jcname'];
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Le panier
$jcitems = $_POST['jcitems'];
// récupération du nom, message, email
$message = "";
$message .= "Le panier a été envoyé à : ".$_POST['jcname']. ". Voici le message : <br>".$_POST['jcmessage'];
// Le contenu : panier + formulaire
$contenu = $jcitems."<br><br>".$message;
mail($to, $subject, $contenu, $headers);
}
header("Location:confirmation_mail.html");
?> |
A noter que désormais avec cette modif, ça envoie le mail à la personne que l'on a mentionné dans le champ prévu à cet effet.
Partager