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 :

Questions imbriquées.


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Webmarketer
    Inscrit en
    Mars 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Webmarketer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2011
    Messages : 14
    Par défaut Questions imbriquées.
    Bonjour à tous,

    Je vais commencer mon message comme beaucoup avant moi : je suis débutant en javascript.
    J'ai été chargé par mon boss de créer un 'prompt' imbriqué dans un 'confirm'.
    C'est-à-dire de demander à l'utilisateur de répondre à une première question.

    S'il répond oui, on lui demande d'entrer son adresse e-mail.
    S'il répond non, il est redirigé vers un site tiers.

    S'il rentre correctement son e-mail, son client mail s'ouvre (équivalent du "mailto", avec un objet de mail prédéfini).
    Si il ne veut pas rentrer son e-mail, il est encore renvoyé vers le meme site tiers.

    Un petit schéma plus clair ici

    Voici ce que j'ai réussi à faire en JS jusqu'ici :

    Le script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <script type="text/javascript">
    	function box()
    	{
    	if (confirm('Voulez vous recevoir... ?'))
    		{ prompt('veuillez entrer votre adresse e-mail') }
    	  else 
    		{document.location.href='http://www.ministryofsound.com';}
    	}
    Son intégration dans le HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="" onclick="javascript: return box();">Lien</a>
    Si vous voulez tester, c'est ici.

    Voilà, je suis un peu bloqué pour mettre tout ca en place. Je ne sais pas comment déclarer les conditions. Je ne sais pas quand les conditions propres à la première "box" doivent s'arrêter pour démarrer celles de la deuxième.

    Merci à tous pour votre aide.

  2. #2
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut
    Eh bien il suffit d'écrire en javascript exactement ce que tu as écrit en français :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    // demander à l'utilisateur de répondre à une première question.
    if (confirm('Voulez vous recevoir... ?')) {
    	// S'il répond oui, on lui demande d'entrer son adresse e-mail.
    	var mail = prompt('veuillez entrer votre adresse e-mail');
    	if (isValid(mail)) {
    		// S'il rentre correctement son e-mail, son client mail s'ouvre (équivalent du "mailto", avec un objet de mail prédéfini).
    		document.location.href='mailto:' + mail + '?subject=Objet_prédéfini';
    	} else {
    		// Si il ne veut pas rentrer son e-mail, il est encore renvoyé vers le meme site tiers.
    		document.location.href='http://www.ministryofsound.com';
    	}
    } else {
    	// S'il répond non, il est redirigé vers un site tiers.
    	document.location.href='http://www.ministryofsound.com';
    }
    Bien entendu c'est à toi d'écrire la fonction "isValid(mail)" (qui peut n'être qu'une ligne de code et non une fonction d'ailleurs) en fonction de ce que tu dois vérifier dans l'adresse mail.

  3. #3
    Membre averti
    Homme Profil pro
    Webmarketer
    Inscrit en
    Mars 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Webmarketer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2011
    Messages : 14
    Par défaut
    Merci beaucoup Loceka !
    Eh bien il suffit d'écrire en javascript exactement ce que tu as écrit en français :
    Justement, c'est en ca que je suis un débutant

    Je teste ca et je te dis.

    En fait, ce que je voulais, c'est que le message apparaisse au click sur le lien. Là il apparait automatiquement au chargement de la page.

    Et cette fonction isValid(mail), comment fonctionne-t-elle s'il te plait ? Où dois-je la déclarer ?

    Merci

  4. #4
    Membre averti
    Homme Profil pro
    Webmarketer
    Inscrit en
    Mars 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Webmarketer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2011
    Messages : 14
    Par défaut
    Bonjour,
    Je me permets de faire remonter cette discussion parce que mon boss me relance là...


    Désolé, j'aimerais vraiment comprendre s'il vous plait.

    Merci

  5. #5
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    Bonsoir !

    Pour valider une adresse mail, on a traditionnellement recours à une expression régulière (en anglais regular expression, abrégé regexp). Sans vouloir te faire peur, je dois te prévenir : une regexp, ça mord, surtout les débutants ! Mais c'est un truc à connaître, on peut faire des choses hyper puissantes avec.

    Pour l'heure, puisque tu es pressé par le temps, tu peux en copier une sans chercher à la comprendre. Je te propose celle-ci, pas forcément la plus simple, mais elle vient directement du site regular-expressions.info que je considère comme une excellente source.
    Code regexp : Sélectionner tout - Visualiser dans une fenêtre à part
    \b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b

    Pour déclarer ta fonction, rien de plus enfantin, tu peux la mettre avant ou après ta fonction box :
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function isValid( mail ) {
        var rx = /\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i;
        return rx.test(mail);
    };
    Explication : je déclare la regexp entre deux slash (/), c'est comme ça qu'on fait en JS. Et je rajoute l'option i qui la rend insensible à la casse, autrement dit elle acceptera aussi bien les minuscules et les majuscules. Ensuite, j'utilise la méthode .test() des regexps, qui renvoie true si la chaîne est valide, ou false sinon.
    Note que je n'étais pas obligé de passer par une variable intermédiaire rx, c'est juste pour plus de clarté
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

Discussions similaires

  1. Question requête imbriquée
    Par antalata dans le forum Oracle
    Réponses: 2
    Dernier message: 08/09/2010, 08h44
  2. requete imbriquée question basique
    Par pelloq1 dans le forum Requêtes
    Réponses: 2
    Dernier message: 28/05/2008, 00h51
  3. Question sur ma structure imbriquées
    Par beegees dans le forum Débuter
    Réponses: 7
    Dernier message: 16/12/2007, 13h43
  4. Question sur SP imbriquées, Transaction et Verrou
    Par Sacha999 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/11/2007, 19h59
  5. Question sur instruction With imbriquée
    Par LadyWasky dans le forum Bases de données
    Réponses: 2
    Dernier message: 14/10/2005, 11h26

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