Bonjour à tous,
C'est vraiment en cas d'extrême limite que je me résous à poster dans un forum, la plupart du temps en parcourant internet je trouve les réponse à mes questions. Mais là, non, je sais pas pourquoi
Trève de blabla, voici mon problème :
J'ai un formulaire, tout bête, avec entre autre deux champs texte, tout bête eux aussi :
Ce que j'aimerai faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <input type="text" name="title" id="title" value="" maxlength="64" /> <input type="text" name="url" id="url" value="" maxlength="16" />
Lorsque j'écris par exemple "J'adore les patates" dans le champs title, le champs url se remplisse automatiquement de la forme : "j-adore-les-patates". Ca ressemble à du URL rewriting, c'est normal
L'URL sera ensuite stockée dans ma base, puis resservie sous la forme index.php?post=j-adore-les-patates puis, à coup de htaccess, en /j-adore-les-patates.html.
J'ai essayé de nombreux pattern et fonctions en Javascript (j'utilise jQuery), avec quelque chose qui ressemble à ça et qui fonctionne relativement bien :
La fonction est absolument horrible mais définie bien ce que je veux faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 $("#title").keyup(function () { var value = $(this).val(); $("#url").val(value.replace(/[' ]/g, patternURL).toLowerCase()); }).keyup(); function patternURL(car) { if(car == "'" || car == " ") return "-"; if(car == "ç") return "c"; if(car == "é" || car == "è" || car == "ê") return "e"; if(car == "à" || car == "â") return "a"; if(car == "ù" || car == "û") return "u"; if(car == "ô") return "o"; */ }
- Remplacer les caractères accentués par des non accentués
- Remplacer les caractères spéciaux par un tiret
Mais je ne veux pas, en cas de titre "Hey !Beignet !" un truc genre "Hey------Beignet--" mais bien "hey-beignet".
Voila, j'espère avoir été assez clair, je continue à chercher de mon côté.
A très vite, et surtout, merci !!
Partager