Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/05/2011, 11h40   #1
Membre du Club
 
Inscription : mars 2008
Messages : 274
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 274
Points : 50
Points : 50
Par défaut Dégradation élégante JavaScript ?

Bonjour/ bonsoir,

Comment gérez-vous la dégradation élégante ? J'aimerais vraiment m'y coller, mais j'ai du mal à voir comment concevoir une application sous cet angle... Je vais prendre un cas concret:
j'ai un formulaire, avec deux boutons (bin oui, autant encore compliquer les choses ;-)) Chaque bouton appelle une action différente.
  1. Le premier demande une prévisualisation du formulaire dans une fenêtre type modale
  2. Le second insère les données dans une base
Actuellement, chaque bouton est géré par une fonction java-script. (plus précisément, par ajax avec jquery, avec ajout d'un ou de plugins).
Maintenant, je désactive java-script. Plus rien ou presque ne fonctionne...
comment palier à cela ? Intégrer directement dans la page les fichiers de traitement du formulaire ? Comment feriez-vous ?
merci,
yann18 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 11h43   #2
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 018
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 018
Points : 45 108
Points : 45 108
Code :
<noscript>Javascript n'est pas dangereux! Activez le ... </noscript>
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 11h50   #3
Rédacteur/Modérateur
 
Avatar de Macmillenium
 
Homme
Inscription : mars 2008
Messages : 2 288
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : mars 2008
Messages : 2 288
Points : 3 205
Points : 3 205
Citation:
Envoyé par yann18 Voir le message
comment palier à cela ? Intégrer directement dans la page les fichiers de traitement du formulaire ? Comment feriez-vous ?
merci,
Personnellement, je pense plutôt à une "amélioration progressive" : je fais un traitement classique et je rajoute ensuite une couche JS pour améliorer l'expérience utilisateur.
__________________
Je ne réponds pas aux questions techniques par MP.
Macmillenium est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 11h54   #4
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 018
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 018
Points : 45 108
Points : 45 108
Plaisanterie à part il est en effet préférable de procéder de façon inverse.
Developper sans javascript et rajouter la couche de js non intrusif.
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 12h14   #5
Membre du Club
 
Inscription : mars 2008
Messages : 274
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 274
Points : 50
Points : 50
Bigre ! C'est ce qu'on appelle de la réactivité ! On se croirait presque sur MSN...
Donc concrètement, si je suis votre raisonnement, cela reviendrait à faire quoi ?
Dans un premier temps, à appeler directement le fichier dans le formulaire (balise action) qui va effectuer le traitement selon le bouton ?
Merci,
yann18 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 12h32   #6
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 018
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 018
Points : 45 108
Points : 45 108
ça reviendrait a faire un formulaire qui est traité uniquement coté serveur ...
puis a rajouter une couche ergonomique avec javascript.
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 12h33   #7
Expert Confirmé
 
Avatar de javatwister
 
Homme
danseur
Inscription : août 2003
Messages : 2 667
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : danseur

Informations forums :
Inscription : août 2003
Messages : 2 667
Points : 3 035
Points : 3 035
ton bouton "visualiser" ne peut se passer de javascript que si tu insères tes données dans la base; en gros, tu envoies vers une page cible et tu demandes si oui ou zut tu veux garder ces données. si oui, ben... oui; si non, tu relances une soumission qui efface les données;

bref, tu n'as besoin que d'un bouton et d'une page action;
__________________
On ne mord pas, on manifeste seulement notre tristesse face à des exposés de situations qui défient notre entendement binaire.
javatwister est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 19h39   #8
Futur Membre du Club
 
Inscription : mai 2011
Messages : 14
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 14
Points : 15
Points : 15
Par défaut Gestion efficace d'un formulaire

Citation:
Envoyé par yann18 Voir le message
Maintenant, je désactive java-script. Plus rien ou presque ne fonctionne...
comment palier à cela ? Intégrer directement dans la page les fichiers de traitement du formulaire ? Comment feriez-vous ?
Attention c'est vraiment essentiel de comprendre que niveau validation de données d'un formulaire JS ça reste de la "déco", car côté client, et il ne faut surtout pas omettre le traitement côté serveur, sécurité oblige.

Après si tu veux gérer les deux côtés pour améliorer l'ergonomie de ton interface c'est une autre paire de… chaussettes ?
ohnomorejmmings est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 22h08   #9
Membre Expert
 
Inscription : septembre 2010
Messages : 1 242
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 242
Points : 1 564
Points : 1 564
Comme déjà dit, tu fais tout sans javascript, puis quand tout fonctionne correctement tu rajoute une couche de javascript, donc uniquement pour le confort de l'utilisateur et soulager un peu le serveur.

Je viens de faire un exemple de formulaire où les erreurs sont gérées et affichées en php ici. Donc pour ce même formulaire, on pourrait ajouter une couche de javascript pour faire les mêmes contrôles, ce qui éviterait d'avoir besoin de recharger la page en cas d'erreur ou de formulaire incomplet.
En fait cela revient à faire deux fois le même travail. Peu de sites commerciaux le font réellement et donc ils fonctionnent mal ou pas du tout si javascript est désactivé. Ce n'est pas ce qu'il conviendrait de faire en théorie mais c'est pourtant c'est la réalité car cela demande beaucoup de travail autrement.
D'ailleurs dans le formulaire que je donne en lien plus haut, même si le contrôle des données et l'affichage des erreurs est fait en php, il y a des listes liées faites uniquement en javascript. Pour bien faire il me faudrait ajouter un bouton "submit" entre des balises <noscript> pour pouvoir faire afficher la seconde liste en php tout en utilisant les variables de sessions pour garder les informations déjà renseignées dans les autres champs...
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h02.


 
 
 
 
Partenaires

Hébergement Web