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 :

ça affiche NULL mais je veux que ça affiche rien.


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 ça affiche NULL mais je veux que ça affiche rien.
    Bonjour,

    Sur un petit éditeur de texte maison et pas piqué des hannetons et pas de moi non plus d'ailleurs, j'ai cette fonction :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
     switch(balise)
                {
     
                    case 'a':
                        var URL=prompt("Adresse du lien:","http://");
                        var Titre=prompt("Titre du lien:","");
                        B="<"+balise+" href=\""+URL+"\" target=\"_blank\">"+Titre+"</"+balise+">";
                    break;
     
                      case 'b':
                        B="<"+balise+">"+B+"</"+balise+">";
     
                    break;
                    default:
                        B=balise;
                    break;
                }            
                with(document.forms[form].elements[textarea]) 
                {
                    focus();
                    value= AvantB +""+ B +""+ApresB;
                }
            break;
        }
    Et je crée des liens en appelant la fonction comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input type="button" class="out"  
     onClick="BBcode('a','editeur','contenu');"
     value="Lien hypertexte">
    Alors ça fonctionne bien, mais si le visiteur annule l'opération lorsque le prompte est lancé, ça affiche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="null" target="_blank">null</a>
    et ça c'est nul, c'est le cas de le dire, je voudrais que ça n'affiche tout simplement rien.

    Comment je fais s'il vous plait ?

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    là, dit comme ça, on ne sait pas du tout à quoi corresspondent tes différentes variables, impossible de t'aider...

    rajoutte juste un test pour vérifier que les valeurs sont correctes

  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 Swoög,

    Bon alors je colle tout le bout de code, comme ça...

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    <script language="javascript"> 
    function switchDiv() 
    { 
    var madiv = document.getElementById('madiv'); 
    if (madiv.style.display=="none") madiv.style.display = ""; 
    else madiv.style.display = "none"; 
    } 
    function switchDiv2() 
    { 
    var rappelDef = document.getElementById('rappelDef'); 
    if (rappelDef.style.display=="none") rappelDef.style.display = ""; 
    else rappelDef.style.display = "none"; 
    } 
     
     
    function BBcode(balise,form,textarea)
    {
        switch (navigator.appName)   
        { 
            case "Microsoft Internet Explorer": 
                var haha=document.selection.createRange().text;    
     
                switch(balise)
                {
     
                    case 'a':
                        var URL=prompt("Adresse du lien:","http://");
                        var Titre=prompt("Titre du lien:","");
                        var insertion="<"+balise+" href=\""+URL+"\">"+Titre+"</"+balise+">";
                    break;
                    case 'b':
                        var insertion="<"+balise+">"+haha+"</"+balise+">";
                    break;
                    case 'i':
                        var insertion="<"+balise+">"+haha+"</"+balise+">";
                    break;
                    case 'citer':
                        var insertion="<"+balise+">"+haha+"</"+balise+">";
                    break;
     
                    default:
                        var insertion=balise;
                    break;
                }
     
                with(document.forms[form].elements[textarea]) 
                {
                    focus();
                }
                var sel=document.selection.createRange();
                sel.text=insertion;        
            break;
            case  "Netscape": 
                with(document.forms[form].elements[textarea]) 
                {
                    var AvantB = value.substring( 0, selectionStart );
                    var B = value.substring( selectionStart, selectionEnd );
                    var ApresB = value.substring( selectionEnd, selectionEnd +100000);
                } 
                switch(balise)
                {
     
                    case 'a':
                        var URL=prompt("Adresse du lien:","http://");
                        var Titre=prompt("Titre du lien:","");
                        B="<"+balise+" href=\""+URL+"\" target=\"_blank\">"+Titre+"</"+balise+">";
                    break;
                    case 'citer':
                        B="<"+balise+">"+B+"</"+balise+">";
                    break;
                    case 'i':
                        B="<"+balise+">"+B+"</"+balise+">";
                    break;
                    case 'b':
                        B="<"+balise+">"+B+"</"+balise+">";
     
                    break;
                    default:
                        B=balise;
                    break;
                }            
                with(document.forms[form].elements[textarea]) 
                {
                    focus();
                    value= AvantB +""+ B +""+ApresB;
                }
            break;
        }
    } 
     
     
     
    </script>
    Ensuite, en ce qui concerne le lien hypertexte, je l'appel comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input type="button" class="out" 
      onClick="BBcode('a','editeur','contenu');" 
    value="Lien hypertexte">
    Cette ligne se trouve donc dans le formulaire avec name="editeur" et le textarea name="contenu".


    Donc le lien se crée bien mais si on annule l'opération en route ça affiche, dans le textarea, ce que j'ai écrit au premier message :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="null" target="_blank">null</a>
    Mais il faudrait que ça n'affiche rien, puisque le visiteur a annulé l'opération...

  4. #4
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Hummm question bete tu annules l'opération comment ?

  5. #5
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    vérifies les valeurs de Titre et URL, s'il y en a une qui est pas bonne (i.e. qui est égale à la valeur renvoyée par prompt quand on annule) : break ou return

  6. #6
    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
    Hummm question bete tu annules l'opération comment ?

    Alors imaginons que le visiteur clique "lien hypertexte" :

    - Une fenêtre s'ouvre pour écrire l'url du lien
    - Il clique sur "ok"
    - Il doit maintenant écrire le titre du lien.
    - Il clique sur "ok" et le lien est créé dans le textarea (genre <a href="http:/www.bob.com">exemple</a>)

    Maintenant, le visiteur clique sur "lien hypertexte", mais décide d'annuler en cours :
    - Il clique, la fenêtre s'ouvre.
    - Soit il clique sur annuler, soit il clique sur la croix en haut à droite de la fenêtre.
    - Dans les deux cas, la fenêtre reste ouverte, mais on passe directement à la suite, soit l'indication du titre.
    - Là, que le gars clique annulé ou clique la croix, la fenêtre se ferme, et affiche le message NULL précisé plus haut, puisque rien n'a été renseigné, ni l'url ni le titre.

  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
    Citation Envoyé par Swoög
    vérifies les valeurs de Titre et URL, s'il y en a une qui est pas bonne (i.e. qui est égale à la valeur renvoyée par prompt quand on annule) : break ou return
    Justement, suis une tare en javascript, je sais pas du tout comment faire, je viens quémander un bout de code.

    En attendant d'apprendre... (je suis déjà au prise avec PHP là).

  8. #8
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Citation Envoyé par psychoBob
    En attendant d'apprendre... (je suis déjà au prise avec PHP là).
    normalement, on fait l'inverse... d'abord les langages côté client, ensuite ceux côté serveur...

    pour commencer, tu pourrais essayer de les comparer à null ou à "null"

  9. #9
    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
    normalement, on fait l'inverse... d'abord les langages côté client, ensuite ceux côté serveur...
    Tout de suite les généralisations... je connais css et html
    Par contre j'aime pas javascript c'est pas compatible, parfois c'est pas activé...
    Mais bon là j'en ai besoin, c'est ponctuel.

    pour commencer, tu pourrais essayer de les comparer à null ou à "null"

    Comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
       case 'a':
                        var URL=prompt("Adresse du lien:","http://");
                        var Titre=prompt("Titre du lien:","");
    if(var URL!="" AND var Titre!="")
    {
    var insertion="<"+balise+"href=\""+URL+"\">"+Titre+"</"+balise+">";
    }
                        break

  10. #10
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(URL!="" && Titre!="")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(URL!=null && Titre!=null)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(URL!="null" && Titre!="null")

  11. #11
    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
    Ouais bah je vais me faire agresser, mais j'ai commis ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var URL=prompt("Adresse du lien:","http://");
                        var Titre=prompt("Titre du lien:","");
    if(URL!=null && Titre!=null)
    var insertion="<"+balise+" href=\""+URL+"\">"+Titre+"</"+balise+">";};
                    break;
    Et maintenant ça m'affiche "undefined".

    C'est toujours moins grave que si c'était pire. Mais bon...

  12. #12
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    OK ^^
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(URL!=null && Titre!=null)
    var insertion="<"+balise+" href=\""+URL+"\">"+Titre+"</"+balise+">";};
    else var insertion = "";

Discussions similaires

  1. [Toutes versions] Requête qui affiche plusieurs champs mais ne groupe que par un seul
    Par Fandyz dans le forum Access
    Réponses: 10
    Dernier message: 14/10/2012, 18h19
  2. Réponses: 2
    Dernier message: 21/04/2010, 17h08
  3. Réponses: 3
    Dernier message: 06/05/2008, 20h48
  4. Réponses: 7
    Dernier message: 20/04/2004, 15h55

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