Bonjour, je développe actuellement un formulaire de demande de devis pour un site qui est une one-page. Le formulaire contient 4 étapes qui sont gérées en JS, AJAX et PHP.

Pour chaque étape du devis, le client reste sur la même page donc la même URL (la page d'accueil) : www.example.com

Afin de permettre une meilleure compréhension au client des différentes étapes du devis, je souhaite modifier mon URL pour lui designer l'étape à laquelle il se trouve.

Pour cela, j'ai utilisé le hachage en JS :
"var url = location.hash = "devis-1";"

Voici le résultat de mon URL modifiée www.example.com/#devis-1

Le souci est le caractère # que je souhaiterai faire disparaître de l'URL. www.example.com/devis-1

J'ai alors essayé cette méthode :

"location.hash = "devis-1".substr(0, 7);"

Lorsque que je fais un console.log, c'est bon le # est supprimé mais pas dans mon URL.

Auriez-vous une piste ? Merci.

3 réponses


En attendant, j'utilise une autre méthode qui fonctionne mais je souhaiterai plutôt passer par le hachage :
window.history.pushState({}, document.title, "/" + "example.com/devis-1");

Bonjour, est-ce que tu ne peux pas juste ajouter le hash au niveau du pushState ?

window.history.pushState({}, document.title, "/#" + "example.com/devis-1");

Effectivement c'est surement préférable de garder le hash si ton serveur ne connais pas ces url's là, ça évite que le client ce mange une erreur 404 si il recharge la page.

Bonjour,

Pour info, 'Nord Coders' a fait (en juillet 2022) un tuto sur un form par etape (en Vue 3).

Ca pourrait peut etre te donner des idées.

L'adresse youtube : https://www.youtube.com/watch?v=b0ACHZqduKM