Envoi du panier par mail

Fermé
Spitz1975 - Modifié le 20 avril 2023 à 11:55
jordane45 Messages postés 38299 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 novembre 2024 - 20 avril 2023 à 12:09

Bonjour,

Je travaille sur un site de réservation de graines de plants.

Il y a donc un panier composé d'un formulaire de contact (pour l'envoi par mail) et d'un tableau récapitulant la sélection de l'utilisateur.

J'aimerai envoyer le tableau tel qu'on le voit à l'écran par mail (ce serait le corps du mail).

Voici le code que j'ai fait pour l'instant :

HTML :

<divid="panier1"><strong>Mon panier</strong>

        <formid="panier">

                <labelclass="form">Nom, Prénom :</label>

                <inputtype="text"name="nom_panier"class="nom_panier"placeholder="Votre nom et prénom."required>

                <br>

                <labelclass="form">Adresse e-mail :</label>

                <inputtype="email"name="email_panier"class="email_panier"placeholder="Votre e-mail."required>

                <br>

                <labelclass="form">Commune :</label>

                <inputtype="text"name="commune"class="commune"placeholder="Votre commune."required>

                <br>

                <labelclass="form">Téléphone :</label>

                <inputtype="text"name="telephone"class="telephone"placeholder="Votre n° de téléphone."title="Facultatif mais peut être utile le jour de la vente pour le RDV.">

                <br>

        </form>

                <div>

                        <tablename="commande"id="commande1">

                                <caption><strong>Ma sélection</strong></caption>

                                <thead>

                                        <tr>

                                                <thclass="prod">PRODUITS</th>

                                                <thclass="prix">PRIX</th>

                                                <thclass="qte">QTÉ</th>

                                                <thclass="tot">TOTAL</th>

                                        </tr>

                                </thead>

                                <tbody>

CONTENU DU TABLEAU

                                </tbody>

                                <tfoot>

                                        <tr>

                                                <tdclass="total"colspan="3"><b>PRIX TOTAL</b></td>

                                                <tdid="prixTotal1"><?=   (!empty($_SESSION['panier']) &&isset($_SESSION['panier']) &&count($_SESSION['panier']) >0) ?number_format($total, 2) :""; ?>€</td>

                                        </tr>

                                </tfoot>

                        </table>

                </div>

        <buttonclass="confirm"onclick="envoiPanier()">Confirmer</button>

</div>

JS :

// Envoyer la commande.

functionenvoiPanier() {

letdataPanier=document.getElementById("panier1");

fetch("./api.php?p=commande", { method: "POST", body: dataPanier })

        .then(res=>res.text())

        .then(txt=> {reinitPanier(),infoCommande();console.log(txt)

        })

        .catch(err=>console.error(err));

returnfalse;

};

// Réinitialiser « Mon panier ».

functionreinitPanier() {

document.getElementById("panier").reset();

};

// Afficher message de confirmation de l'envoi de la commande.

functioninfoCommande() {

document.getElementById("infoCommande").style.display="block";

};

PHP :

<?php

// Envoi de la commande.

        $sujet ="Réservation de plants";

if (isset($_POST["commande"])) {

        $commande ="Cette commande vous a été envoyée via le formulaire de réservation du site « Les plants de Plougoulm ».

        Nom : ". $_POST["nom_panier"] ."

        Email : ". $_POST["email_panier"] ."

        Commune : ". $_POST["commune"] ."

        Téléphone : ". $_POST["telephone"] ."

        Commande : ". $_POST["commande"];

        $retour =mail(MAIL_ADMIN, $sujet, $commande, Headers);

        }

?>

Mon problème est que l'envoi ne se fait pas mais je n'ai pas non plus de message d'erreur qui s'affiche.

Pouvez-vous aider le débutant que je suis. D'avance, je vous remercie.


Windows / Firefox 112.0

A voir également:

1 réponse

jordane45 Messages postés 38299 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 novembre 2024 4 704
20 avril 2023 à 12:09

Bonjour,

Vu que tu fais appel à ton script php en ajax (via la librairie FETCH de JS ), il serait bien de regarder dans la console de ton navigateur la réponse de cet appel.

Ensuite, ton site est en "local" sur ton ordi ou hébergé sur un serveur ?

Si sur un serveur... chez qui ?

Si en local....  as tu configuré le STMP pour l'envoi des mails  ?

NB: Plutôt que de passer par la fonction mail native de php .. tu ferais mieux de te tourner vers la librairie phpmailer.

Tu trouveras des tutos/exemples assez facilement à ce sujet sur le net.


0