IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

placer une url par défaut en cas de désactivation de javascript


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut placer une url par défaut en cas de désactivation de javascript
    Bonjour,

    J'ai un petit soucis avec le script suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <form method="post" id="idformulaire" action="identification.php">
    <a href="#" onclick='document.getElementById("idformulaire").submit()'>
    Connexion 
    </a>
    <input type="hidden" name="retourPage" value="'.$retour.'">
    </form>
    Le but de ce script est de transmettre la variable du champ hidden en cliquant sur le lien connexion au lieu de cliquer sur un bouton submit.
    Cela ça fonctionne bien.
    Le problème c'est que si le gars a désactivé javascript, il ne peut plus accéder à la page d'identification.php puisque l'url du lien est #.

    Donc j'ai essayé de rajouter cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <noscript>
    <a href="identification.php">
    Connexion 
    </a>
    </noscript>
    Mais alors le problème c'est que si javascript est désactivé, cette ligne s'affiche en plus de celle du premier script. On a donc deux liens connexions.

    Alors j'ai essayé de placer cela dans le href du lien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <a href="#
    <noscript>identification.php</noscript> onclick='document.getElementById("idformulaire").submit()'
    ">
    Connexion 
    </a>
    Bon là j'y croyais pas trop et d'ailleurs le résultat est une horreur dans la barre d'url du navigateur

    Comment je fais s'il vous plait ?
    C'est pas parce que j'ai tort que vous avez raison.

  2. #2
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 557
    Points
    557
    Par défaut
    une idée comme ca:

    le onclick sera toujours traité en premier, avant le href. Donc tu mets dans le href l'url de destination en cas de non javascript, et en cas de javascript, dans le onclick tu mets une fonction javascript qui désactive l'url dans le href avant de processer le reste... C'est peut-être bourrin mais là mon cerveau n'a encore pensé qu'à cette solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="identification.php" onclick="this.href='javascript:void(0);'; document.forms[0].submit();">test</a>
    Au fait, c'est toujours mieux de placer autre chose (qd c'est possible) que le "#", dans le href d'un lien "vide", car le # remonte toujours en haut de page, cherchant après une ancre nomée. En général, je place javascript:void(0), ou encore javascript:;
    Lorsque ce sont des liens qui ouvrent des popups par exemple, c'est assez déconcertant pour l'utilisateur de voir sa page remonter tout en haut.
    Merci à Microsoft pour avoir transformé un métier relativement terne et basé sur une approche bêtement technique et rigoureuse des faits, en challenge quotidien, nécessitant une remise en question permanente à l'échelle du quart d'heure

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Salut Bkill, merci de ta réponse.

    Bon ta solution est à testé si personne n'a rien d'autre, mais avant je voudrais essayer un truc plus léger (au moins pour moi qui n'y connais pas lourd en javascript) :

    J'écris le texte du lien à l'intérieur des balises
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <script>
    <a href="#" onclick='document.getElementById("idformulaire").submit()'>
    Connexion 
    </a>
    </script>
    et en dessous j'écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <noscript>
    <a href="identification.php">
    Connexion 
    </a>
    </noscript>
    Comme cela, sauf erreur de ma part, la première partie n'est même pas interprété et c'est le code normal qui s'affiche.
    Si c'est bon, reste à écrire convenablement la chaine à l'intérieur des balises <script></script>. Vous savez faire ?
    C'est pas parce que j'ai tort que vous avez raison.

  4. #4
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 557
    Points
    557
    Par défaut
    Ben pour écrire ta chaine entre <script> et </script>, tu vas devoir utiliser document.write() de javascript...
    Ca risque d'être assez illisible au final, pour la maintenance de ta page.
    Merci à Microsoft pour avoir transformé un métier relativement terne et basé sur une approche bêtement technique et rigoureuse des faits, en challenge quotidien, nécessitant une remise en question permanente à l'échelle du quart d'heure

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Ma foi ta solution Bkill est impecable.

    J'aimerais bien la comprendre mieux, parce que je suis 0 en javascript (depuis que je le dis faudra que je m'y mette, j'y suis arrrivé pour PHP y'a pas de raison).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <a href="identification.php" 
    onclick="this.href='javascript:void(0);'; 
    document.forms[0].submit();">
     
    test
     
    </a>
    Cela veut dire "en cliquant, la balise href devient javascript:void() et on soumet le formulaire.
    Ok super, mais javascript:void(0) ça veut dire quoi au juste ?
    Et que veux dire document.forms[0] ?
    Que vient faire un tableau là dedans, j'ai qu'un form ?

    Histoire de pas utiliser du code bêtement sans comprendre...
    C'est pas parce que j'ai tort que vous avez raison.

  6. #6
    Membre confirmé Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Points : 558
    Points
    558
    Par défaut
    javascript:void(0);
    en décomposant, ca veut dire que c'est du javascript (comme http: dans les liens pour dire que c'est du http) et le code javascript qui a deriere (void(0); ) veut dire "ne fait rien" c'est pour ca qu'a la place de "void(0);" tu peux simplement mettre l'instruction vide ";" (un simple point virgule)

    Ensuite comme dans un document HTML il est possible de mettre plusieur formulaire "document.forms" désigne l'ensemble des formulaire du document.
    Pour acceder au premier (et le seul formulaire de ta page) tu prend le 1° element du tableau, ce qui donne "document.forms[0]"
    Librairie d'accès LDAP en Java : LdapBeans
    et pensez au tag

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Ok et comment détermine-t'on le premier formulaire de la page, s'il y en avait plusieurs ?
    Par exemple juste en dessous de celui-ci j'ai le champ de recherche google, qui est aussi un formulaire.
    C'est quand même pas en fonction de l'ordre d'apparition des balises <form></form> dans le code.
    C'est pas parce que j'ai tort que vous avez raison.

  8. #8
    Membre confirmé Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Points : 558
    Points
    558
    Par défaut
    Bah si !! (enfin je crois )
    Ceci dit tu peux parconrir tes formulaires et controler leur nom
    Tu peux aussi mettre un id et acceder aux elements grace a la fonction getElementById
    Librairie d'accès LDAP en Java : LdapBeans
    et pensez au tag

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] [Requête Union] : renvoyer une valeur par défaut en cas d'absence de résultat
    Par ludovicparis dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 19/04/2010, 20h25
  2. [débutant]Placer une image par dessus une autre
    Par sempire dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 21/11/2005, 18h42
  3. [MySQL] Comment afficher une image par défaut ?
    Par clicman dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 12/10/2005, 08h46
  4. [JFrame] Placer une fenêtre par rapport à une autre
    Par Invité dans le forum Agents de placement/Fenêtres
    Réponses: 7
    Dernier message: 16/09/2005, 16h47
  5. Constructeur par défaut en cas de surcharge
    Par gigi_m dans le forum MFC
    Réponses: 4
    Dernier message: 08/06/2005, 09h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo