Forums d'entraide informatique - Les forums de PCW

Version complète : adresse du lien sur une balise php
Vous consultez actuellement la version basse qualité d'un document. Voir la version complète avec le bon formatage.
Pages : 1 2 3 4 5
Euh oui ce problème apparaît pas sous tous les navigateurs je crois...

En fait c'est le contraire, ça vient des directives JavaScript de la fenêtre qui interdisent les barres de scroll, mais bon faudrait que j'aille tripoter les templates... hmm... ai-je le temps...

Bon s'pèce de casse-pied je vais me créer un compte alors :roll:
Bon, donc par exemple pour les MP, le lien pour répondre est le suivant : -http://espace-bonsai.xooit.info/privmsg.php?mode=quote&p=XXXXX

Ou XXXX est l'id du MP

Or, dans l'url que tu visites quand tu lis un MP, il y a ça :

Citation :-http://espace-bonsai.xooit.info/privmsg.php?folder=inbox&mode=read&p=XXXXX

Donc en JavaScript il faut récupérer l'URL puis extraire le "XXXXX", ensuite tu génères une URL du type de celle que j'ai donné en premier avec le XXXXX en lieu et place qu'il faut.

Puisqu'il ne serait pas très intéressant que je fasse tout à ta place je vais t'orienter :

Récupérer l'URL courant :


var urlcourante = location.href;

Modifier une string (chaine de caractère) :

var string = "CoucouCoca";
var str2 = string.replace(/maregex/gi, "replacement");
// g et i après la regex sont des drapeaux qui signifies :
// g : global, si tu ne le mets pas ça ne remplacera que la première occurence
// i : case-Insensitive : insensible à la casse (Maj/Min)

Tu peux utiliser cette fonction replace pour virer tout sauf le "p=XXXX", mais je pense que la fonction match est plus adaptée :


var str = "CoucouCoca";
var tableau = str.match(/cou/gi);
alert(tableau); // Regarde donc ce que ça renvoit afin de comprendre comment fonctionne match

Enfin, si tu ne connais pas bien les regex, il faut utiliser Google mais quelques petites astuces tout de même :

p=XXXXX se fera avec le masque suivant : /p\=([0-9]+)/

Je te laisse faire des tests, je suis là pour répondre aux questions Smile

PS : J'oubliais : Rien n'est irréalisable !

moi casse-pied !? Non ça ce serait.. Big Grin
J'ai édité je m'étais trompé de lien pour le premier lien Smile
ouff pas facile quand même pour quelqu'un qui connait rien à JS,
moi sait juste marquer script = text javascript Tongue

non vais quand même essayer, mais je voit pas comment dans le body mon lien sous cette forme
<a class="ovalbutton" href="XXXXXXXX"><span>Nouveau message</span></a>

va appeler le script qui sera dans head, enfin je crois, à moins que l'on intègre le script au lien Huh


<script type="text/javascript">
function match()
{
var urlcourante = location.href;
var str = "/privmsg.php?folder=inbox&mode=read&/p\=([0-9]+)/";
var tableau = str.match(/cou/gi);
alert(tableau);

</script>

ça marchera pas avec ce que j'ai fait je crois Blush

et dans string match "cou" c'est la regex ? ça veut dire quoi cou?



<a class="ovalbutton" href="
<script type="text/javascript">
function match()
{
var urlcourante = location.href;
var str = "/privmsg.php?folder=inbox&mode=read&/p\=([0-9]+)/";
var tableau = str.match(/cou/gi);
alert(tableau);

</script>
"><span>Nouveau message</span></a>

Confused

Oui "cou" c'est la regex, c'était un simple exemple pour mon "CoucouCoca".

Déjà, occupons-nous d'extraire l'id du post de l'URL de la page encore.

Ensuite quand tu auras réussi ça, on s'occupera de remplacer le lien, chaque chose en son temps Smile

Essaies de voir ce que donne mon script comme je t'ai dit :


var str = "CoucouCoca";
var tableau = str.match(/cou/gi);
alert(tableau); // Regarde donc ce que ça renvoit afin de comprendre comment fonctionne match

Observes ce que le script renvoit et essaies de comprendre comment "match" fonctionne Smile

Si tu ne comprends pas comment match fonctionne, je te donnerai un coup de main là-dessus Smile

Ah, si, une info : alert() affiche un tableau comme ceci :

tableau ( valeur1, valeur2) en affichant "valeur1, valeur2".

Chaque virgule signifie qu'on change de clé Smile

Une clé c'est un élément du tableau :

Clé 1 : tableau[1]
Clé 2 : tableau[2]
Clé X : tableau[X]

Je te laisse découvrir un peu ça, dis moi ce que tu ne comprends pas Smile

Ok alors après avoir placé le script, j'ai une alerte avec deux cle Cou,cou
je supose que la regex y ait pour quelque chose,

j'ai essayer ça:

<script language="JavaScript">
var str = "Sheitan";
var tableau = str.match(/she/gi);
alert(tableau);
</script>

et j'ai essayé dans str le s de sheitan en minuscule puis en majuscule,
apparement ma regex me renvoit autant de nombre de lettres que contient "str"
dison qu'elle recopie ce que str contient ?

je raconte que des conneries non Big Grin

EDIT: bon je me suis rappeler que le i avait un raport avec les min/maj,
en enlevant le i du script, l'alert me dit que je suis 'null' (ce qui n'est pas complètement faux..)

Citation :<script language="JavaScript">
Wow, tu es encore sous Netscape 3 toi ?

Depuis longtemps c'est ainsi qu'on déclare un code javascript dans une page HTML :


<script type="text/javascript">

C'est un type MIME qu'on déclare, l'attribut "language" n'a jamais rien signifié, il servait au début quand JavaScript était en guerre entre Netscape et Internet Explorer qui avaient chacun de leur côté une version etc... (cf. guerre des navigateurs sur Google).


En fait match te crée un tableau. Il y met les valeurs qu'il trouve dans string et qui correspondent à ta regex, dans l'ordre de la string. S'il ne trouve rien, il renvoit null.

S'il n'y a qu'une occurence, je te laisse deviner où trouver la valeur correspondant au masque (la regex)...



... dans tableau[0] ? (on compte depuis 0 en informatique Wink )

ah oui ça je savais pour type mime, bon disons que c'est de la faute au copié collé fait sur google,
mais sur mon forum j'ai bien mis correctement.

plus ça va et plus je nage avec tout c'est nouveau mot, je essayer de faire un petit dico puis tu me dira si je suis dans la bonne voie car là c'est très compliqué pour moi.

<script type="text/javascript">
var str = "CoucouCoca";
var tableau = str.match(/cou/gi);
alert(tableau); // Regarde donc ce que ça renvoit afin de comprendre comment fonctionne match
</script>

donc là dedans, j'ai:
- ma regex = /cou/gi
- occurence = ???
- masque = /cou/
- string = ???
- match = c'est la function que l'on utilise pour le script
- valeur = de 0à9 les valeur sont placé dans le masque comme ici /p\=([0-9]+)/

voilà ça c'est ce que je crois avoir compris
mais je suis vraiment dans le doute.. Undecided

troll a écrit :S'il n'y a qu'une occurence, je te laisse deviner où trouver la valeur correspondant au masque (la regex)...
... dans tableau[0] ? (on compte depuis 0 en informatique
Confused la valeur est O si il n'y a qu'une occurence
"Valeur" : Par définition, c'est le "contenu", on dit "la valeur d'une variable", une valeur ça peut être n'importe quoi : chiffre, nombre, booléen, entier, entier relatif, flottant, objet...

String : Tu dois sans doute savoir ce qu'est un "string" en FR ? Eh bien ça vient de l'anglais "chaine", ou "ficelle" pour les intimes. Or une phrase, comme "CoucouCoca" est une chaine de caractères. Des caractères chainés les uns derrière les autres. Donc une "string" c'est une chaine de caractères. De manière générale "str" est une abréviation de "string".

"Occurence" en fait ça signifie que tu as "trouvé" ce que tu cherchais.

Pour le coup c'est difficile à expliquer "occurence", une "occurence" c'est l'endroit où tu trouves ce que tu cherches en quelques sortes. Quand tu "vas à la prochaine occurence" quand tu cherches quelque-chose dans un texte (CTRL + F sous Firefox par exemple) ça veut dire que tu vas au prochain endroit où on trouve ce que tu cherches.

Le "masque" en fait c'est quasiment la même chose que la regex, aux drapeaux (flags) prêts. Donc tu as bon là-dessus.

Donc si je te dis qu'on cherche la "S'il n'y a qu'une occurence, la valeur correspondant au masque dans tableau[0]" ça veut dire que, comme nous on ne cherche que dans une string où - a priori - il n'y aura qu'une occurence du masque recherché, on trouvera la valeur (ce qui correspond au masque : ([0-9]+) (ce qui signifie "des chiffres entre 0 et 9, et AU MOINS un, ou plus)) dans tableau[0] car il met une occurence dans 1 clé et on compte depuis 0 en informatique (0 = première clé, 1 = deuxième clé).

Pour comprend les regex, je te conseille ce site : http://www.expreg.com/

Dans le menu "Général" à gauche, lis les 4 premiers Smile Même si tu ne comprends pas tout tu auras un peu le vocabulaire en tête Smile

Tu peux lire la suite si tu veux mais c'est plus spécifique à perl/php après il me semble.

Au final, la valeur qu'on cherche à récupérer, sera l'id du post (ou du MP dans le cas présent), je rappelle Smile


PS : Les regexp ça te sera très utile crois-moi !
Pages : 1 2 3 4 5
URLs de référence