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 :

Ligne javascript lue même dans une condition non vérifiée


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Points : 146
    Points
    146
    Par défaut Ligne javascript lue même dans une condition non vérifiée
    Bonjour, j'aurais besoin de vos lumières pour comprendre pourquoi un code javascript est lu même lorsqu'il est dans une condition qui n'est pas validée. Attention, je dis lu, pas exécuté ! Je sais qu'il est lu car mon outil Web Developer me retourne une erreur sur une des lignes dans la condition.

    Je m'explique : sur une page j'ai un formulaire; lorsqu'il est envoyé, la page est rechargée et m'affiche une div. Sur cette page j'ai un variable javascript qui prend pour valeur la valeur PHP envoyée par la méthode POST.

    Le problème c'est qu'à la première arrivée sur la page, puisqu'aucune valeur POST n'est encore envoyée, je n'ai pas de valeur PHP et donc ma variable javascript retourne une erreur. Logique. Donc j'ai pensé mettre une condition qui vérifiait si la div était visible (POST passé) ou pas, mais malgré ça la ligne est quand même lue.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if ($('#tabs').is(':visible')) {
    	var mc=<?php echo $_POST['mot']; ?>;
    	$('#child').val(mot);
    	alert('detect');
    }
    Au premier chargement de la page, pas d'alert donc, mais une erreur à la ligne 2 "syntax error : var mc=;". Une explication ? Merci d'avance.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    il est ou le test isset sur le post ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    salut,

    je sais pas ce que te renvois ta page au premier chargement, mais si elle te renvoit du code html avec un , a fortiori, le div n'a pas de raison detre caché et le if est validé.

    L'erreur comme lindique web developper c'est que ton code avec le truc php équivaut à écrire :
    ce qui est syntaxiquement invalide.
    (pour ten convaincre, clique droit, code source sur ta page php générée dans ton browser).

    Donc le plus simple c que tu écrives
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var mc='<?php echo $lol;?>';
    et là pu de probleme.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Donc le plus simple c que tu écrives
    Code :
    Sélectionner tout - Visualiser dans une fenêtre à part

    var mc='<?php echo $lol;?>';

    et là pu de probleme.
    ???
    heu le plus simple est de faire un test isset ...

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    on peut mixer les 2 solutions :
    var mc='<?php if(isset($_POST['mot'])) echo $_POST['mot']; ?>';
    Ce qui donnera :
    var mc='';
    ou
    var mc='lemot';
    Ce qui règle en même temps les problèmes d'erreur PHP et JavaScript.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Points : 146
    Points
    146
    Par défaut
    J'ai comme le sentiment que vous allez me dire que j'ai super mal construit ma page !! J'ai en premier mon formulaire, ensuite j'ai le isset, puis j'ai le javascript :

    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
    <div>
        <form>...</form>
        <?php if (isset($_POST['mot'])) { ?>
            <div id="tabs">...</div>
        <?php } ?>
    </div>
     
    <script>
    $(function() {
    if ($('#tabs').is(':visible')) {
    	var mc=<?php echo $_POST['mot']; ?>;
    	$('#child').val(mot);
    	alert('detect');
    }
    });
    </script>
    Je viens de tester en mettant le javascript DANS le isset, et c'est pareil !

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Points : 146
    Points
    146
    Par défaut
    En revanche, la solution de rajouter les ' ' semble résoudre le problème, mon erreur n'apparait plus ! Merci à tous.

  8. #8
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    Si tu ne veux ni la balise (div="tabs") ni la balise script quand la variable n'est pas transmise, tu peux aussi faire...

    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
    <?php
    $mot=(isset($_POST['mot']))?$_POST['mot']:'';
    ?>
     
    <div>
    	<form>...</form>
    <?php if($mot!='') { ?>
    		<div id="tabs">...</div>
    <?php } ?>
    </div>
     
    <?php if($mot!=''){ ?>
    <script type="text/javascript">
    	$(function(){
    		if ($('#tabs').is(':visible')){
    			var mc='<?php echo $mot; ?>';
    			$('#child').val(mot);
    			alert('detect');
    		}
    	});
    </script>
    <?php } ?>

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Points : 146
    Points
    146
    Par défaut
    Oui c'est une solution également. Merci !

  10. #10
    Invité
    Invité(e)
    Par défaut
    ???
    heu le plus simple est de faire un test isset ...
    le prends pas mal si mon avis diffère. Moi cque je vois c'est que quelquesoit la valeur de mot, qui sémantiquement est un string, on va se taper une erreur en ayant var mc=leMotAvecRienAutour;

    Effectivement, lexécution de la présence de tabs ou pas, n'a rien a voir avec le probleme du mot. Mais la question était double.
    Pourquoi le if est exécuté, et pourquoi ca merde a la ligne var mc.

    edit:jreaux62 avait déjà précisé le probleme.

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

Discussions similaires

  1. Executer une fonction javascript dans une condition if
    Par benny-blanco dans le forum C#
    Réponses: 1
    Dernier message: 07/08/2012, 19h00
  2. [WD-2007] Calcul de lignes dans une page non null
    Par battit64 dans le forum VBA Word
    Réponses: 3
    Dernier message: 19/03/2011, 00h38
  3. Comment mettre du code php dans une condition javascript ?
    Par Alexandrebox dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/04/2010, 12h55
  4. Réponses: 9
    Dernier message: 04/10/2007, 12h15
  5. Réponses: 4
    Dernier message: 24/04/2003, 22h28

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