Memoriser la position d'une barre de defilement ? - PHP - Programmation
Marsh Posté le 26-09-2005 à 14:07:41
ne pas recharger la page
Tu peux faire ça avec du javascript qui réagit au click sur la miniature et charge l'image dynamiquement.
Marsh Posté le 26-09-2005 à 14:15:28
Moi ce que j'ai fait dans mon supaÿr système, c'est mettre un id sur chaque image, genre :
<a href="galerie.php?image=pouet"><img src="pouet.jpg" alt="Un joli pouet id="pouet"></a> |
Et pis dans la page où j'affiche l'image, y'a un lien retour de la forme :
<a href="liste.php#pouet">Retour</a> |
Du coup ça revient en arrière, et grâce au combot id + #pouet, ça scroll tout seul à l'image...
Maintenant faudrait adapter ça à ton site...
Marsh Posté le 26-09-2005 à 14:44:28
Moi je te propose de mettre une fonction comme ça dans ton entete de page:
|
de mettre l'id sur ton image taille reelle
|
et de faire des liens comme ça sur tes miniatures
|
Marsh Posté le 26-09-2005 à 15:10:52
Moi je propose ça :
Tu met un id sur chaque image, et tu rajoute le fragment identifier qui va bien dans l'url :
<a href="http://stephane-l.club.fr/korxx/index.php?imglg=0204.jpg#0204"><img id="0204" src="/thumbs/0204.jpg" alt="pouet" /></a> |
Et le tour est joué.
Boulaxx, ta solution est pas accessible
Marsh Posté le 26-09-2005 à 15:12:56
FlorentG a écrit : Moi ce que j'ai fait dans mon supaÿr système, c'est mettre un id sur chaque image, genre :
|
Ca se fait pas de donner des codes buggés
Marsh Posté le 26-09-2005 à 15:15:29
FlorentG a écrit : Boulaxx, ta solution est pas accessible |
Boulet
Marsh Posté le 26-09-2005 à 15:19:45
esox_ch a écrit : Ca se fait pas de donner des codes buggés |
Ca marche très bien Regarde sur cette page. Prend une image, clique, et fait "Retour"
boulax a écrit : Boulet |
Boulax
Marsh Posté le 26-09-2005 à 15:21:47
FlorentG a écrit : Ca marche très bien |
le prend pas mal, il te manquait un tout petit, minuscule, ridicule guillemet
Marsh Posté le 26-09-2005 à 16:07:28
Merci beaucoup pour toutes vos réponses, par contre je comprends pas trop j'ai un unexpected T_STRING, je vois pas d'ou ca vient...
Code :
|
Marsh Posté le 26-09-2005 à 16:23:23
Oula oula
echo '<a href="index.php?imglg=', $fichier, '"><img border="0" src="', $tmp, '" alt="un joli pouet" id="', $id, '"></a>'; |
Marsh Posté le 26-09-2005 à 16:47:27
Je crois que l'accessibilité, à ce niveau là, on s'en tamponne un peu les steacks
Marsh Posté le 26-09-2005 à 18:31:04
FlorentG a écrit : Oula oula
|
Donc a chaque fois que j'utilise une variable je la met entre virgules et guillemet simple c'est ca ?
Je ne savais pas, merci pour cette précision, je vais corrigé tout mon code en intégrant cela
par contre ils sont necessaires les espaces que tu as mis ?
Marsh Posté le 26-09-2005 à 18:37:39
C'est juste la syntaxe la plus optimisée pour afficher un truc direct
Pour les espace, c'est question de typo + lisibilité
Marsh Posté le 26-09-2005 à 18:58:05
FlorentG a écrit : C'est juste la syntaxe la plus optimisée pour afficher un truc direct |
Ok ben merci d'avoir partager ca avec moi
tant qu'a faire autant avoir un code correct
En tout cas meme avec ta syntaxe j'ai la meme erreur, je m'y pencherai plus tard parce que la je vois pas du tout
Marsh Posté le 26-09-2005 à 19:15:57
C'est le php qui avait du mal a prendre le " en compte il a fallu que je rajoute des \ avant chaque "
Now ca marche
merci bcp FlorentG (par contre ta syntaxe entre virgule marchait pas)
Marsh Posté le 26-09-2005 à 19:27:50
ReplyMarsh Posté le 26-09-2005 à 20:21:17
FlorentG a écrit : Si elle marche, t'as dû foirer un truc |
C'est dans du php c'est peut etre pour ca ?
Sinon comme ca ca marche :
Code :
|
et comme ca ca marche pas :
Code :
|
avec le code qui marche pas les liens deviennent comme ca :
http://stephane-l.club.fr/korxx/in [...] jpg,'#0463
Sinon j'ai fait comme tu me la conseillé pour mettre un id sur chaque image et ca fonctionne
C'est deja mieux, on s'y perds moins a chaque fois que ca charge
Marsh Posté le 26-09-2005 à 20:30:51
à mon avis tu as dû mélanger deux trucs ...
voilà 3 équivalents
Code :
|
Note : les virgules ne sont utilisables qu'avec echo ...
Marsh Posté le 26-09-2005 à 20:41:22
shakpana a écrit : à mon avis tu as dû mélanger deux trucs ...
|
ok, je n'avais effectivement pas utilisé echo pour le presenter, je fais confiance à FlorentG quand au fait qu'il vaut mieux d'un point de vu accessibilité le présenter ainsi.
Merci à toi
Et désolé de vous faire corriger mon code, j'apprends, et vu qu'il y a plusieurs facon de faire, on tombe pas forcement sur la mieux du premier coup
Sinon j'ai lu que l'erreur que j'avais était du a un mauvais traitement des guillemets par php et que dans ce cas on pouvait mettre \" a la place, ce que j'ai fait et ca marche, mais encore une fois j'ignore si c'est la meilleure methode
Marsh Posté le 26-09-2005 à 20:55:49
> j'ignore si c'est la meilleure methode
boharf, c'est un débat de "Bests practises" car en fait que tu fasses
"\"\"" ou '""' ou '"'."\"" ça revient au final au même, mais c'est plus ou moins bien lisible, certains n'aiment pas les "texte et $var" car ils prétendent que c'est difficile à débugger, noyage des variables dans le texte, généralement les éditeurs à coloration de syntaxe n'afficheront pas la $var en couleur, donc plus difficile à lire ...
moralité : fait comme bon te semble et comme il est pratique de faire pour toi enfin en connaissance de cause quand même ...
mais une qd une bonne habitude est prise ... après tu peux diffuser un code, que chacun sera heureux de lire
Marsh Posté le 26-09-2005 à 22:29:53
Ma version est plus optimisée : pas de recherche de variables dans les chaînes de caractère, et utilisation de la virgule, afin d'éviter une concaténation de chaînes inutile
Marsh Posté le 26-09-2005 à 22:58:51
> Ma version est plus optimisée
ce n'était pas vraiment mon propos, ya pas de différence de perf. entre "\"" et '"' mais entre "test $var" et "test ".$var, oui, la dif. est significative (enfin à grande échelle)
> et utilisation de la virgule
mais comme en fait il n'y avait pas de echo, la virgule
Marsh Posté le 27-09-2005 à 05:44:19
FlorentG a écrit : Ma version est plus optimisée : pas de recherche de variables dans les chaînes de caractère, et utilisation de la virgule, afin d'éviter une concaténation de chaînes inutile |
Cool une question que je me suis souvent posée tiens, merci de cette info
mais ce que je comprends pas :
Code :
|
la il va rechercher des variables dans toute la partie : "index.php?imglg=', $fichier, '" pour le début.
Ne serait-ce pas mieux :
Code :
|
Comme ca php ne fait aucune recherche de variable (euh nerf le post me vire mes antislash, mais tu vois où je veux les mettre quoi, dans le but de pas utiliser de guillemets doubles " )
La concaténation est moins optimisée que la recherche de variable ?
Marsh Posté le 27-09-2005 à 05:45:36
arf gourré entre répondre et éditer :x
Marsh Posté le 27-09-2005 à 08:18:10
Nan pas de point.
Quand tu fais ça :
echo 'a', 'b', $truc, 'c', $machin; |
C'est équivalent à ça :
echo 'a'; |
Donc t'affiche tout à la suite comme ça, sans te poser de question, et avec une syntaxe légère (pas besoin d'un echo par ligne, suffit de séparer les truc par des virgules).
Par contre avec les points :
echo 'a' . 'b' . $truc . 'c' . $machin; |
Là c'est équivalent à :
$tmp = 'a' . 'b' . $truc . 'c' . $machin; |
Donc là, y'a une concaténation de chaîne. On fout chaque élément à la suite des autres, qu'on met dans une variable, qui va être affichée... Question : à quoi ça sert de se taper une concaténation, si c'est pour afficher le truc tout bêtement ? Si en plus t'as des chaînes énormes à afficher, et que t'es chaud niveau mémoire, vaut mieux afficher direct que faire une concaténation intermédiaire...
Pour l'HTML enfin, ça permet d'utiliser des double-quotes sans avoir à faire un escape :
echo '<pouet truc="machin">', $pouet, '</pouet>'; |
(note qu'on utilise plutot les " pour les attributs, un peu moins souvent les ', même si c'est pas obligatoire)
Marsh Posté le 27-09-2005 à 11:34:10
Voilà un ptit bench, sur un vieux 700Mhz, soyez indulgent
Code :
|
je crois que la solution de la ligne 2 est encore la mieux
Marsh Posté le 27-09-2005 à 13:25:31
Fait le test plusieurs fois, aprés, tu pouras voir. Par ce que là, il suffit qu'un autre programme ai bossé au milieu du test pour fausser le temps.
Marsh Posté le 27-09-2005 à 13:26:40
Faut les faire quand ton ordio est en mode sans echecs je dis .. Ou mieux sous un unix ou presque tout les demons sont arretés
Marsh Posté le 27-09-2005 à 13:55:30
?!
c'est déjà ce qu'on appelle des moyennes sur une 10aine de bench, sur une bécane dédiée ...
edit: ha oui et j'avais fermé les fenêtres pour éviter les courants d'air
Marsh Posté le 27-09-2005 à 14:16:00
Les benchs ont l'air juste c'est ce qu'on observe d'habitude...
Marsh Posté le 27-09-2005 à 14:21:45
me serait bien lancé dans le portage du bench sur d'autres bécanes, dans des calculs d'ecart moyen et yadayada, mais c'est moi qui vait perdre des cycles de processeur
Marsh Posté le 27-09-2005 à 14:34:32
Code :
|
Marsh Posté le 27-09-2005 à 14:35:53
Ce dernier ne fonctionne pas partout Vaut mieux utiliser tout le temps <?php ?> pour être portable à 100%
Marsh Posté le 27-09-2005 à 14:38:52
A oui , pour les tag abbrégés ... donc
Code :
|
Marsh Posté le 27-09-2005 à 14:40:22
Nan, ça marche pas ça Faut mettre un echo obligatoirement...
Marsh Posté le 27-09-2005 à 14:51:42
Roh font chier a la fin Bon si c'est comme ca je vais manger un ptit pot et je vais bouder dans mon coin
Marsh Posté le 26-09-2005 à 14:00:29
Bonjour, j'ai un petit probleme sur mon site (en construction : http://stephane-l.club.fr/korxx22 )
lorsque l'on parcourt les images a gauche et que l'on fait defiler vers le bas et que l'on clique sur une photo, on recharge la page ce qui a pour effet de reinitialiser la barre de defilement...
Ce qui est plutot genant car on ne sais pas ou on en etait etc...
J'ai pensé a mettre en variable la position de la barre de defilement mais je ne sais pas si c'est possible...
Sinon si vous avez d'autres idées je suis preneur
Message édité par korxx le 27-09-2005 à 11:01:18