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 :

Passage de 8 variables


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 209
    Points : 115
    Points
    115
    Par défaut Passage de 8 variables
    Bonjour à tous
    ce script fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <a class="td_modif" id="cell_11" title="modifier" onclick="affiche_modif
    ('.$ref.') " > &nbsp;</a>
     
    RECEPTION DU ONCLICK :
     
    function affiche_modif(ref)
    {
    document.getElementById("div_popup_mod").style.display ="block";
    document.getElementById("ref").value =ref;
    }
    Celui ci , le même en plus long ne fonctionne pas :
    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
    <a class="td_modif" id="cell_11" title="modifier" onclick="affiche_modif
    ("'.$ref.'","'.$nom.'","'.$prenom.'","'.$tel1.'","'.$tel2.'","'.$ville.'","'.$cp.'","'.$email.'") " > &nbsp;</a>
     
    RECEPTION DU ONCLICK :
     
    function affiche_modif(ref, nom, prenom, tel1, tel2, ville, cp, email){
    document.getElementById("div_popup_mod").style.display ="block";
    document.getElementById("ref").value =ref;
    document.getElementById("nom").value =nom;
    document.getElementById("prenom").value =prenom; 
    document.getElementById("tel1").value =tel1;
    document.getElementById("tel2").value =tel2; 
    document.getElementById("ville").value =ville;
    document.getElementById("cp").value =cp; 
    document.getElementById("email").value =email;}
    pas de message d'erreur, rien ne ce passe..j'ai tenté avec et sans guillemets autour des variables php, idem.
    Si je met une seule variable mais que je laisse toutes les lignes d'en la fonction, ça marche...
    Donc c'est l’envoie qui pose problème mais je n'ai pas trouvé ou et pourquoi.

    malgré que dans le code source de la page, les variables sont bien passés dans mes inputs , mais ma div reste cachée !!
    Voila si vous avez une idée et un peu de temps
    .
    .

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Es-tu sûr de ne rien avoir dans la console Javascript ?
    Et quand tu dis que ta div reste cachée, c'est qu'elle n'a pas la propriété CSS display à block ? Ou ça pourrait venir d'un autre souci de CSS ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 209
    Points : 115
    Points
    115
    Par défaut
    effectivement, jai installé firebug et...

    SyntaxError: syntax error
    [Stopper sur une erreur]

    affiche_modif(120011,
    ---------------------^

    j'ai trouvé, dans une variable il y a une adresse mail, et il bloque sur l'arobase
    .
    .

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 209
    Points : 115
    Points
    115
    Par défaut
    le souci c'est que je ne vois pas comment éviter l'arobase,
    j'ai enregistrer une adresse en remplaçant @ par & # 6 4 ; (sans les espaces bien sur^^)
    mais à l'arriver c'est tjrs @ qui est dans la variable,
    logique vu que c'est php qui gère !!

    Si quelqu'un à une idée, ou je clôture et ouvre un autre post ?
    .
    .

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 209
    Points : 115
    Points
    115
    Par défaut
    pour ceux que ça interressent :

    je remplace l'@ par * avant l'enregistrement dans la base de donnée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $email= str_replace("@", "*", $email);}
    Le code js/php avec des échappements pour les apostrophes des variables alphanumérique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    echo '<a class="td_modif" id="cell_11" title="modifier"	onclick="affiche_modif
    ('.$ref.',\''.$nom.'\',\''.$prenom.'\','.$tel1.','.$tel2.',\''.$ville.'\','.$cp.',\''.$email.'\') " > &nbsp;</a>';
    lors de la recup, on remplace '*' avant d'afficher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $email= str_replace("*", "@", $email);
    Merci de votre attention et à Sylvain pour m'avoir mis sur la voie

  6. #6
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Cette bidouille avec l'apostrophe n'a pas lieu d'être. Les apostrophes passent très bien dans les String JS.

    Regarde avec Firebug ce que donne l'attribut onClick dans le HTML. Il doit y avoir une erreur d'échappement.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 209
    Points : 115
    Points
    115
    Par défaut
    Effectivement bien vu...oui et non^^
    Le problème vient de plus loin, j'ai honte, mais aussi dès fois ça marche à moiter alors que ça devrait planter...je m'explique.
    j'avais complétement oublié de mettre les ID de référence (getElementById) pour mes [ input ] c'est apparue dans firebug une fois que j'avais réglé le reste.
    Normalement ça n'aurait pas du marcher du tout

    Voila pourquoi ce que j'ai dit"ecrit" n'avait rien à voir^^
    Même si le principe de remplacement fonctionne, mais ce n'etait pas le problème..

    Bizarre dès fois la programmation ^^

    Par contre, pour l'apostrophe ceci ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick="affiche_modif('.$ref.',''.$nom.'',\''.$prenom.'\',......
    Ça non plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick="affiche_modif('.$ref.',"'.$nom.'",\''.$prenom.'\',......
    les guillemets il n'en veux pas..et avec échappement c'est niquel..( si c'est de ça dont tu parlais ?)


    merci de ton aide et à bientôt

  8. #8
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Non désolé du lapsus, en fait je voulais parler de l'arobase, pas de l'apostrophe. Tu as effectivement besoin de l'antislash vu que tu utilises la single quote pour la commande echo PHP, et les double quotes pour l'attribut onclick.
    Pour éviter cet enchaînement de quotes, tu peux également associer l'évènement en Javascript plutôt que dans le HTML avec onclick :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    document.getElementById("cell_11").addEventListener("click", function(){
       afficheModif(...)
    });
    et je pense que tu peux également retravailler ton code pour te débarrasser du echo en PHP, mais là c'est hors scope de ce forum.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 209
    Points : 115
    Points
    115
    Par défaut
    Bien, mais je ne maitrise pas JS, je vais laisser mes " imbrications " ^^
    En tout cas ça fonctionne très bien
    Pour info :ce n'est pas un site, mais un logiciel intranet afficher par prism, qui tourne sur Firefox , donc si mon code n'est pas "super valide muliplatforme !" ce n'est pas très grave .
    Mais dés que j'ai du temps je m'attelle à JS, j'en inclus un peu plus à chaque développement.....

    Merci pour ton aide, d'erreur en erreur j'y suis arrivé...mais le projet n'est pas fini, je vais surement bloquer encore avant la fin
    @ bientôt

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

Discussions similaires

  1. Passage d'une variable
    Par agencep dans le forum Langage
    Réponses: 6
    Dernier message: 23/02/2006, 15h57
  2. passage d'une variable javascript dans du html
    Par the_ugly dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 01/02/2006, 16h08
  3. passage d'une variable dans une frame
    Par Atchoum_002 dans le forum Langage
    Réponses: 2
    Dernier message: 17/10/2005, 17h06
  4. passage d'une variable en parametre
    Par duga dans le forum Langage
    Réponses: 4
    Dernier message: 11/09/2005, 12h19
  5. [C#] Passage d'une variable pour un controluser
    Par julio84 dans le forum ASP.NET
    Réponses: 10
    Dernier message: 07/04/2005, 13h50

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