8768 sujets

Développement web côté serveur, CMS

Bonjour à toutes et à tous!
J'essaie depuis plusieurs jours maintenant de résoudre un problème qui s’avère plus compliqué que je ne le pensais.

J'ai une page contact.php contenant un formulaire basique avec un input de type submit pour envoyer le formulaire.

Le formulaire à pour cible lui même, donc la page contact.php#section-contact-form. (Le navigateur amène jusqu'au formulaire via l'ancre #section-contact-form)

Un script PHP analyse le formulaire, et si tous les champs sont correctement remplis, du texte est ajouté à la page qui dit que le message à bien été envoyé.

Et jusqu'à la tout fonctionne bien. Smiley lol

Seulement j'aimerais que quand le texte qui est ajouté à la page pour dire que le message à bien été envoyé s'affiche, le navigateur aille jusqu'à l'ancre #anchor-delivery-confirmation au lieu de #section-contact-form, pour que l'utilisateur puisse voir le message sans avoir à scroller et comprenne bien que le message à été envoyé.

Par exemple si je rajoute le bout de code ci-dessous à la page cela ne fonctionne pas, pourtant ma condition est bonne et le JS fonctionne, sauf quand je soumet le formulaire... Et par contre si j'ai déjà soumis le formulaire, en réactualisant la page là ça fonctionne.

<?php
    if ($displayDeliveryConfirmation)
    {
        <script defer>
            let anchorDeliveryConfirmation = document.getElementById("anchor-delivery-confirmation");

            let posX = anchorDeliveryConfirmation.offsetLeft;
            let posY = anchorDeliveryConfirmation.offsetTop;

            window.scrollTo(posX, posY);
        <script>
    }
?>


Donc j'aimerais trouver une méthode pour que le bout de code ci-dessus fonctionne lorsque je soumet le formulaire et que le navigateur amène donc le visiteur directement à l'ancre #anchor-delivery-confirmation quand le booléen $displayDeliveryConfirmation vaut vrai.

Merci de votre attention en espérant avoir été clair!
Bon désolé d'avoir poster pour rien, il s'avère que de manière isolé cela fonctionne, c'est seulement sur ma page que le bug se présente, je vais certainement la réécrire ce sera sûrement plus simple...

Une semaine de galère et il faut que je poste sur le forum pour penser à le tester en dehors de mon code, j'aurais du poster avant Smiley lol
Modifié par Adrien1 (26 Aug 2021 - 19:05)