Pour que l'ajout du javascript ne gêne pas l'accessibilité, il faut que ce ne soit qu'un ajout. Le fait que, si un évènement retourne false, le comportement par défaut de l'objet est alors ignoré aide énormément à ça.
1 : le choix du type de terrain
Tu stockes le terrain "courant" dans une variable de session côté serveur. Et pour changer le terrain courant, on clique sur un lien <a href="map.php?action=change_outil&outil=foret"> pour placer des forets, etc...
Tu insèreras par la suite le javascript en ajoutant la fonction qui va bien dans l'entête de ta page, et tu ajouteras simplement un évènement sur tes liens : onclick="change_outil('foret'); return false;".
2 : la modification d'une case de ta map
Au départ tu fais sans Javascript, c'est à dire que chaque case est cliquable avec un lien <a href="map.php?action=change_case&case=x,y"> qui modifie la case de la map «temporaire».
Même principe, tu vas simplement ajouter la fonction qui va bien dans l'entête, et ajouter un évènement onclick="change_case(x,y)".
3 : l'enregistrement de la map
Même principe hein, on va pas la refaire en boucle
Au final tu as à chaque étape commencé par faire ta page sans javascript, et tu as ensuite ajouté du javascript dégradable (dégradable parce qu'il n'est que facultatif pour le bon fonctionnement de la page). Celui qui n'a pas javascript activé pourra utiliser ta page en «mode dégradé» (chaque action entraîne un refresh de la table, old school quoi ), les autres auront tout le confort.
On peut même aller plus loin avec des librairies comme prototypeJS qui grâce à des sugars comme document.getElementsByClassName et addEventObserver permettent de ne pas ajouter de "onclick" ou autre, mais simplement d'ajouter ces contrôleurs «à la volée» au chargement de la page, selon la classe du lien par exemple. Mais c'est l'étape d'après
1 : le choix du type de terrain
Tu stockes le terrain "courant" dans une variable de session côté serveur. Et pour changer le terrain courant, on clique sur un lien <a href="map.php?action=change_outil&outil=foret"> pour placer des forets, etc...
Tu insèreras par la suite le javascript en ajoutant la fonction qui va bien dans l'entête de ta page, et tu ajouteras simplement un évènement sur tes liens : onclick="change_outil('foret'); return false;".
2 : la modification d'une case de ta map
Au départ tu fais sans Javascript, c'est à dire que chaque case est cliquable avec un lien <a href="map.php?action=change_case&case=x,y"> qui modifie la case de la map «temporaire».
Même principe, tu vas simplement ajouter la fonction qui va bien dans l'entête, et ajouter un évènement onclick="change_case(x,y)".
3 : l'enregistrement de la map
Même principe hein, on va pas la refaire en boucle
Au final tu as à chaque étape commencé par faire ta page sans javascript, et tu as ensuite ajouté du javascript dégradable (dégradable parce qu'il n'est que facultatif pour le bon fonctionnement de la page). Celui qui n'a pas javascript activé pourra utiliser ta page en «mode dégradé» (chaque action entraîne un refresh de la table, old school quoi ), les autres auront tout le confort.
On peut même aller plus loin avec des librairies comme prototypeJS qui grâce à des sugars comme document.getElementsByClassName et addEventObserver permettent de ne pas ajouter de "onclick" ou autre, mais simplement d'ajouter ces contrôleurs «à la volée» au chargement de la page, selon la classe du lien par exemple. Mais c'est l'étape d'après
Ressources [PHP][MySQL][prototype.js]