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

Langage PHP Discussion :

Variable PHP qui n'en fait qu'à sa tete


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 46
    Par défaut Variable PHP qui n'en fait qu'à sa tete
    Bonjour,

    J’ai un petit souci avec des variables PHP.
    Mon code ignore totalement la valeur de ma variable $ExisteNom1, comme si elle n’existait pas !!

    Voici le code en litige :
    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
     
    <?php
    $ExisteNom0="Trouve";
    if ($ExisteNom0=="Trouve")
    	{
    		echo "<script  type='text/javascript'>
    		var Existe = '';
    		var Question = confirm('Ce nom existe d\\351j\\340 dans la base de donn\\351es \\n\\nVoulez-vous continuer ou annuler ?');
    		if (Question){ Existe='Trouve';} else { Existe='PasTrouve';}
    		</script>  ";
    		$ExisteNom1 = "<script type='text/javascript'>document.write(Existe);</script>"; 
    	}
    	echo "ExisteNom1"."   ".$ExisteNom1;
    	if (($ExisteNom1== 'Trouve'))   { 	echo "TestExisteNom1"."   ".$ExisteNom1;}
    	if (($ExisteNom1!= 'Trouve'))   { 	echo "TestExisteNom2"."   ".$ExisteNom1;}
    	?>
    En effet quand je clique sur OK ou sur Annuler dans la boite de dialogue Confirm, la variable PHP $ExisteNom1 prend bien la valeur correspondante.

    La ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "ExisteNom1"."   ".$ExisteNom1;
    Confirme bien que la variable $ExisteNom1 contient bien la valeur Trouve

    Mais le test conditionnel agit comme si la valeur était différente.
    Ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (($ExisteNom1== 'Trouve'))   { echo "TestExisteNom1"."   ".$ExisteNom1;}
    n'affiche rien

    Alors que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (($ExisteNom1 != 'Trouve'))   { echo "TestExisteNom1"."   ".$ExisteNom1;}
    affiche bien la valeur Trouve alors qu’elle ne devrait pas

    Si quelqu’un a une meilleure vue que moi pour m'expliquer où est la panne

    Avec mes remerciements
    Alain

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    L'erreur est d'espérer modifier des variables PHP en utilisant JavaScript...

    Le 1er n'existe plus quand le 2eme entre en scène.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 46
    Par défaut
    Merci pour ta réponse,
    Je reconnais qu’utiliser du javascript pour récupérer une variable n’est pas forcément la meilleure solution, mais je n’en ai pas d’autre

    Ceci dit, je ne comprends toujours pas, certes je suis un peu obtus, mais cela ne m’explique pas pourquoi la ligne située après le js,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "ExisteNom1"."   ".$ExisteNom1;
    la variable contient bien la bonne valeur
    ni pourquoi la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (($ExisteNom1 != 'Trouve'))   { echo "TestExisteNom1"."   ".$ExisteNom1;}
    la variable $ExisteNom1 contient également la bonne valeur, mais ne répond pas au test conditionnel alors que selon ta réponse, cette variable devrait être vide

    Alain

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ce n'est pas que c'est une solution moins bonne. C'est que c'est une solution qui ne peut pas marcher.

    Ta variable vaut litteralement "<script type='text/javascript'>document.write(Existe);</script>", regarde la source HTML de ton résultat dans ton navigateur.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 46
    Par défaut
    Effectivement,
    En regardant le code source de la page la variable prend la valeur
    « <script type='text/javascript'>document.write(Existe);</script> »
    Cela ne m’arrange pas…

    Bon ben je vais essayer de trouver une autre solution sans le js

    Merci pour ton aide

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

Discussions similaires

  1. Variable php qui prend le nom d'un champ de la base de données
    Par Invité dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 17/09/2013, 10h44
  2. html dans le mail (PHP) qui fait échouer
    Par laurentSc dans le forum Langage
    Réponses: 7
    Dernier message: 11/03/2011, 13h51
  3. programme php qui fait des additions
    Par jakol dans le forum Langage
    Réponses: 1
    Dernier message: 30/04/2010, 17h03
  4. [MySQL] variable php dans une boucle mysql qui envoit vers un popup
    Par sinifer dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 18/06/2009, 15h57
  5. Réponses: 1
    Dernier message: 23/04/2007, 13h22

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