Pages :
bonjour,

j'ai créé une page avec un agenda simple: un tableau créé au préalable avec excel avec en première colonne les dates successives (ex 01/01/2007 au 31/12/2007)
comment faire (script?) pour qu'en cliquant sur un lien en haut de page (ex "date du jour"), on accède directement sur la même page à la ligne précise de la date correspondante ?
(script basé sur la date système du pc ?!)

merci

chopi
Salut !

En javascript, tu prends la date du jour.

avec getDate il me semble.
Tu la convertie au format approprié (celui que tu affiches sur ton tableau).

L'idée ensuite est de boucler sur ton tableau et pour chaque date de regarder si elle a la même valeur.

Le plus simple est d'attribuer un id à ton tableau puis, à l'aide d'un getElementById, tu te positionne dessus (tu l'enregistre en tant qu'objet).

grosso modo:


var grandpere = document.getElementById("MonBoTableau_Oh_Oh_Oh");
var actuel_petit_enfant = grandpere.firstChild.firstChild; /*(arbre Jscript: table, puis Ttable puis Tr (en général, si ma mémoire est bonne)) */

/*je suis au premier tr, je regarde la valeur de la premiere cellule*/
trouve = false;/* j'ai pas encore trouve ma belle date */
while (actuel_petit_enfant && !trouve) /*tant qu'il y a des petits enfants et que je n'ai pas trouvé*/
{
if (actuel_petit_enfant.firstChild.nodeName == "TD")
  {
  if (actuel_petit_enfant.firstChild.innerHTML == aujour_dhui)
     {
     location = /*je sais pas trop si on peut se téléporter sur un objet*/
     trouve =true;
     break;
     }
    actuel_petit_enfant = actuel_petit_enfant.nextSibling; /*on passe à la ligne suivant*/
   }
else
 {
 window.alert("Ouiiiinn ça marche pas, snif, ça me soul la prog  [bawling] ");
 }
}


Voila en très grosso modo, pour donner une idée Smiley biggrin .
Je pense qu'il te sera plus utile d'utiliser un langage serveur (PHP par exemple) qui génèrera la date (par exemple 010107 pour le 01/01/07).

Ensuite, mets des id, et un lien dit ancre, et ca devrait être bon Smiley cligne
lol, tu as tout à fait raison, je suis tellement dans le javascript sur mon site en ce moment que j'en ai oublié le php Smiley biggrin ...

mais bon, comme j'ai presque finit de lui faire son script entièrement... Smiley rolleyes
janor a écrit :
lol, tu as tout à fait raison, je suis tellement dans le javascript sur mon site en ce moment que j'en ai oublié le php Smiley biggrin ...

mais bon, comme j'ai presque finit de lui faire son script entièrement... Smiley rolleyes

Oui, mais le PHP restera plus simple (deux trois lignes max je pense) et fonctionnera sur tous les postes, ce qui est un bon avantage...
Administrateur
Bonjour et bienvenue,

ce sera en effet plus universel en PHP. Tu devrais avoir une boucle sur chaque date de l'année et dans cette boucle un if() lorsque la ligne à afficher correspond à la date du jour. Dans ce cas-là, tu l'affubles d'un id="datedujour" ce qui te permet d'une part de pointer dessus avec un lien <a href="#datedujour"> et d'autre part de la styler autrement dans ta feuille de style pour la faire ressortir visuellement.
Pour le style, en javascript je peux aussi le modifier, pour ce qui est des compatibilités, il y a très peut de personnes qui n'ont pas accès à javascript, et pour ce qui est du php, j'ai tendance à l'éviter autant que possible, il entraine des requètes suplémentaires au serveur, oblige un rechargement de la page à chaque modification...

Il est bien pour ce pouquoi il a été créé: séléctionner les bonnes données à afficher.

Une fois qu'une page est chargée, j'ai du mal à comprendre l'intérêt de la recharger 20 fois.

Le cas le plus évident est les formulaires, alors que tu peux faire un contrôle avec javascript pour vérifier les données renseigner, la majorité des formulaires se contentent d'un contrôle PHP...

Pour ce qui est du cas qui nous interesse, pour la date du jour, d'accord php, mais imaginons qu'une personne veuille voir aujourd'hui les événements qui auront lieu en août... rechargement de la page ?
Alors que toutes les données sont déjà présentes ? Où est l'intérêt ?

Javascript est le langage de script dynamique, et si je ne m'abuse pas, il me semble que le web 2.0 l'encourage vivement.

Pour ceux qui n'ont pas javascript, ils ne disposeront pas du script, mais ce n'est pas pour ça que la page ne leur sera pas accessible.

Il faut arrêter avec la phobie de javascript, c'est un langage très pratique, et si il existe, il y a des raisons !!

Pour ce qui est du script, il ne m'a fallu que deux heures pour le composer. (avec une option pour choisir une date spécifique).

C'est certes plus long qu'en php, mais on fait les choses bien ou pas.

Et j'aime pas abandonner une idée que j'ai déjà entamée, si je m'aperçois qu'elle est mal adaptée, je la modifie, pour qu'elle le soit.

Désolé pour mon esprit un peut borné... Smiley cligne
Créer une fonctionnalité javascript qui conditionne à elle seule l'accès à un contenu ou à un service est une énorme sottise. Ces fonctionnalités doivent venir en surcouche sur une solution serveur garantissant la fiabilité du système (cas-type: validation d'un formulaire).

Créer une fonctionnalité javascript optionnelle qui laisse un lien inopérant lorsque javascript est désactivé ou non disponible est simplement grotesque. Générer le lien lui-même via javascript est en effet trivial (Cas-type: exemple ci-dessus).

Se fier à ce que suppose le supposé Web2.0 quand il prétend réinventer la roue et s'approprier ce en quoi il n'est pour rien est... Là, je préfère ne rien dire. Ce forum est modéré et destiné à un public gééralement jeune, après tout Smiley cligne

Se priver de javascript sous quelque-prétexte que ce soit est évidemment tout aussi sot. Il suffit de tenir compte des deux premiers points, notament.

Ne serait-il pas enfin temps que les contenus Web, même réalisés par des amateurs, cessent enfin d'être le rigolo de service de la programmation ? Smiley ravi
Modifié par Laurent Denis (17 Feb 2007 - 09:24)
Laurent Denis a écrit :
Se fier à ce que suppose le supposé Web2.0 quand il prétend réinventer la roue et s'approprier ce en quoi il n'est pour rien est... Là, je préfère ne rien dire. Ce forum est modéré et destiné à un public gééralement jeune, après tout Smiley cligne
Smiley smile

Le Web 2.0, nouvel outil de validation de qualité Web ? Smiley lol
Laurent Denis a écrit :
Ne serait-il pas enfin temps que les contenus Web, même réalisés par des amateurs, cessent enfin d'être le rigolo de service de la programmation ? Smiley ravi
On peut toujours rêver...
Laurent Denis a écrit :
Créer une fonctionnalité javascript qui conditionne à elle seule l'accès à un contenu ou à un service est une énorme sottise. Ces fonctionnalités doivent venir en surcouche sur une solution serveur garantissant la fiabilité du système (cas-type: validation d'un formulaire).

Créer une fonctionnalité javascript optionnelle qui laisse un lien inopérant lorsque javascript est désactivé ou non disponible est simplement grotesque. Générer le lien lui-même via javascript est en effet trivial (Cas-type: exemple ci-dessus).

Se fier à ce que suppose le supposé Web2.0 quand il prétend réinventer la roue et s'approprier ce en quoi il n'est pour rien est... Là, je préfère ne rien dire. Ce forum est modéré et destiné à un public gééralement jeune, après tout Smiley cligne

Se priver de javascript sous quelque-prétexte que ce soit est évidemment tout aussi sot. Il suffit de tenir compte des deux premiers points, notament.

Ne serait-il pas enfin temps que les contenus Web, même réalisés par des amateurs, cessent enfin d'être le rigolo de service de la programmation ? Smiley ravi


@Laurent :

1/ Je respecte éminemment le rôle et le statut de modérateur sur ce forum.
2/ J'apprécie particulièrement la pertinence technique de vos interventions en général et des tiennes en particulier
3/ Je reconnais la nécessité de participer à la connaissance et à la mise en pratique de standards, normes, best practices...
4/ J'accepte totalement qu'Alsacréations fasse son objet de la promotion de ces instruments pour un web meilleur, plus accessible, plus convivial...
En disant cela, je signifie que je comprends parfaitement que c'est à moi de dégager et d'aller voir ailleur si cet objet / raison d'être ne me convient pas.

En revanche, je trouve tout simplement inadmissible qu'un modérateur sur ce forum ne puisse faire la part entre le factuel, le rationnel qui sous-tend la justification de son action et les débordements d'affect qui n'accompagnent que l'insulte gratuite.

Il est fort possible Laurent que je ne sois qu'un sot grotesque bouffon et rigolo de service. Je le dis sincèrement et sans malice. Il m'arrive plus souvent qu'à mon tour de me traiter d'imbécile.
Mais je ne t'autorise pas toi à me le signifier ou à le sous entendre de cette manière.

Je me suis senti visé par ton post ?
Parfois !
Il n'y a que la vérité qui blesse ?
Non ! Ce qui blesse c'est le fait que tu portes un jugement de valeur que toute la science dont tu disposes et maîtrises ne t'autorise pas à porter.

Le web, met à notre disposition des outils. A nous de nous en servir le plus correctement possible grace à votre enseignement et en fonction du but que l'on recherche.
Un but n'est ni moins ni plus honorable qu'un autre.

Ne transforme pas s'il te plait des recommandations factuellement justifiables en Valeurs Morales !

Je suis déjà dehors !
Modifié par aCOSwt (17 Feb 2007 - 11:14)
Salut.

aCOSwt > Du calme ! Il y a maldonne ... Laurent ne s'en prend absolument pas à toi. Je ne vois pas ce qui justifie une telle réaction de ta part dans son post ? Sa position est claire, posée et argumentée. Je ne vois aucune trace d'une quelconque grossièreté Smiley ohwell

Laurent Denis a écrit :
Ne serait-il pas enfin temps que les contenus Web, même réalisés par des amateurs, cessent enfin d'être le rigolo de service de la programmation ?
J'imagine que c'est cette partie qui t'a heurté, mais je pense qu'il fait simplement allusion à un certain manque de considération de la part du monde informatique envers la programmation web, encore souvent assimillée à du "bricolage". En aucun cas il ne t'a traité toi d'idiot ou de rigolo de service ...
Salut,

je reviens à la question initiale.

Si on utilise la fonction date() de php on peut sans difficulté obtenir :


<?php

$date_du_jour = date("d/m/Y");

echo $date_du_jour;

?>


Ce qui donnera bien pour aujourd'hui par exemple :
17/02/2007

A partir de cela on peut très facilement composer un lien tel que

<?php

$date_du_jour = date("d/m/Y");

echo "a href='#ancre_".$date_du_jour."'>Date du jour</a>";

?>


Il suffit donc que lors de la constitution du tableau réalisé au préalable on ait prévu de mettre pour la première colonne non pas simplement les dates successives mais aussi un ancrage pertinent pour chacune des lignes, soit :

<a href="#" id="ancre_01/01/2007" name="ancre_01/01/2007"></a>01/01/2007

...

...

<a href="#" id="ancre_31/12/2007" name="ancre_31/12/2007"></a>31/12/2007

et le problème est réglé.


Comme on le voit il n'y a aucun échange supplémentaire avec le serveur pour que la chose soit opérationnelle.

Le javascript ne pourrait rien apporter de plus même en surcouche. Il n'avait donc pas du tout a être ne serait ce qu'envisagé.

la question était en fait très simple et c'est un erreur que de ne pas y avoir répondu simplement.
Modifié par Christian Le Bouler (17 Feb 2007 - 11:47)
aCOSwt a écrit :

Il est fort possible Laurent que je ne sois qu'un sot grotesque bouffon et rigolo de service. Je le dis sincèrement et sans malice. Il m'arrive plus souvent qu'à mon tour de me traiter d'imbécile.
Mais je ne t'autorise pas toi à me le signifier ou à le sous entendre de cette manière.


Comme indiqué ci-dessus, je ne qualifie jamais les personnes, mais uniquement les pratiques. Toutes mes excuses s'il y a eu malentendu sur ce point.

Intervenant quotidiennement dans le cadre de mon métier sur ce type de problème, je le fais aussi volontiers sur ce forum, mais en adoptant ici un ton évidement plus libre et féroce que dans mes rapports d'audits et autres prestations de conseils. Cela n'a aucun rapport avec mon statut de modérateur ni avec un quelconque jugement sur mes interlocuteurs, mais relève simplement d'une certaine forme d'humour (naturellement obscur) Smiley cligne
Modifié par Laurent Denis (17 Feb 2007 - 11:54)
Christian Le Bouler a écrit :

<?php

$date_du_jour = date("d/m/Y");

echo "a href='#ancre_".$date_du_jour."'>Date du jour</a>";

?>


Mais il faudrait utiliser autre chose comme séparateur puisque la barre oblique ne fait pas partie des caractères autorisés dans les valeurs des attributs name et id.

cf HTML4.01 - Les types de données HTML de base

D'ailleurs y-a-t-il vraiment besoin d'un séparateur ?
djfeat a écrit :


Mais il faudrait utiliser autre chose comme séparateur puisque la barre oblique ne fait pas partie des caractères autorisés dans les valeurs des attributs name et id.

cf HTML4.01 - Les types de données HTML de base

D'ailleurs y-a-t-il vraiment besoin d'un séparateur ?


Oui je me doutais que j'y allais vraiment vite sur ce coup là Smiley cligne

Néanmoins
a écrit :

D'ailleurs y-a-t-il vraiment besoin d'un séparateur ?


Ben oui évidemment !!!!!!!!!!!!!!!!!!!!!!!!!!!

Une date sans séparateur, et puis quoi encore ???????????????????????

Donc des tirets au lieu des slash et n'en parlons plus Smiley rolleyes

et arrêtons de finauder jusqu'au point de dire n'importe quoi...
Modifié par Christian Le Bouler (17 Feb 2007 - 15:47)
Christian Le Bouler a écrit :
et arrêtons de finauder jusqu'au point de dire n'importe quoi...
Je ne vois pas en quoi le fait de ne pas mettre de séparateur pour ta date dans l'id serait un problème (à condition bien sûr que le jour du mois et le mois soient systématiquement sur deux chiffres).
Julien Royer a écrit :
Je ne vois pas en quoi le fait de ne pas mettre de séparateur pour ta date dans l'id serait un problème


Du point de vue code effectivement aucun problème. Puisque tout se réduit finalement à chaine_de_caractere.
Mais il se trouve que dans cette affaire il n'y a pas que du code réduit à l'état de chaine de caractère. Or à chaque étape un aspect human-agent peut et doit être pris en compte sans que, au passage, l'aspect chaine de caractère nécessaire du point de vue d'une discrimination logicielle ne soit en aucune manière remise en cause.
Modifié par Christian Le Bouler (17 Feb 2007 - 15:59)
Christian Le Bouler a écrit :
Du point de vue code effectivement aucun problème. Puisque tout se réduit finalement à chaine_de_caractere.
Mais il se trouve que dans cette affaire il n'y a pas que du code réduit à l'état de chaine de caractère. Or à chaque étape un aspect human-agent peut et doit être pris en compte sans que, au passage, l'aspect chaine de caractère nécessaire du point de vue d'une discrimination logicielle ne soit en aucune manière remise en cause.
Je ne suis pas sûr d'avoir saisi ce que tu veux dire. Le délimiteur permet une meilleure lisibilité, je suis bien d'accord, mais il n'est pas du tout indispensable, et je trouve étrange que tu répondes "et arrêtons de finauder jusqu'au point de dire n'importe quoi..." à "D'ailleurs y-a-t-il vraiment besoin d'un séparateur ?".
Modifié par Julien Royer (17 Feb 2007 - 16:05)
Laurent Denis a écrit :
Créer une fonctionnalité javascript qui conditionne à elle seule l'accès à un contenu ou à un service est une énorme sottise. Ces fonctionnalités doivent venir en surcouche sur une solution serveur garantissant la fiabilité du système (cas-type: validation d'un formulaire).


Janor a écrit :
Le cas le plus évident est les formulaires, alors que tu peux faire un contrôle avec javascript pour vérifier les données renseigner, la majorité des formulaires se contentent d'un contrôle PHP...


Je n'ai jamais dit que le contrôle PHP était à bannir, je disais juste que le contrôle Javascript était tellement pratique, et permettait que le contrôle php soit dans la majorité des cas validant. (D'où évitement du rechargement de la page pour que l'utilisateur puisse modifier les données qu'il a saisit).

Laurent Denis a écrit :
Ne serait-il pas enfin temps que les contenus Web, même réalisés par des amateurs, cessent enfin d'être le rigolo de service de la programmation ?


Je ne releverai pas bien loin cette pique, juste que effectivement j'ai moins d'expérience que la plupart d'entre vous, mais j'imagine que vous avez tous débuté en grand experts...

Pour ce qui est de la réponse de Christian, je suis partiellement d'accord. Par contre cela ne te gène pas de dupliquer des données côté serveur ? (un id pour chaque ligne Smiley sweatdrop , c'est la maladie de l'idite ça !)

a écrit :
Le javascript ne pourrait rien apporter de plus même en surcouche. Il n'avait donc pas du tout a être ne serait ce qu'envisagé.

=>Je suis un fan du javascript Smiley fache

Le javascript évite tout simplement d'avoir la maladie de l'IDite, qui surcharge la page (365 jour par année, à raison de 60 octets par id, 21900 octets, soit 21.38 ko en plus à la page !).

Bref, je ne vais pas m'étendre d'aventage là-dessus. Oui le javascript n'est pas parfait, mais ne constitue pas une solution idiote et catastrophique...
Modifié par janor (17 Feb 2007 - 16:22)
janor a écrit :
Je ne releverai pas bien loin cette pique, juste que effectivement j'ai moins d'expérience que la plupart d'entre vous, mais j'imagine que vous avez tous débuté en grand experts...
Le problème n'est pas d'avoir peu d'expérience puisque, comme tu le soulignes, tout le monde est passé par là. Le problème est plutôt d'affirmer que ta solution est la meilleure alors que tu manques de recul Smiley smile :
janor a écrit :
C'est certes plus long qu'en php, mais on fait les choses bien ou pas.
Pour ce qui est des id, la question de départ ne supposait a priori pas qu'il y aurait un lien pour chaque jour (heureusement d'ailleurs, car 365 liens en haut de page, ce serait un peu lourd...). Il suffit donc de ne générer que les ids nécessaires (par exemple "dateCourante").
Pages :