Réécriture champ texte pour mise en forme url
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 :
Code:
1 2 3
|
<input type="text" name="title" id="title" value="" maxlength="64" />
<input type="text" name="url" id="url" value="" maxlength="16" /> |
Ce que j'aimerai faire :
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 :
Code:
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"; */
} |
La fonction est absolument horrible mais définie bien ce que je veux faire :
- 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 !!