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 :

Php dans un InnerHTML qui lui se trouve une preg_replace


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Août 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Août 2013
    Messages : 18
    Par défaut Php dans un InnerHTML qui lui se trouve une preg_replace
    Salut, j'ai un preg_replace en php, dedans se trouve une fonction javascript qui me permet de remplacer un texte par un autre, et donc dans ce code se trouve un innerHTML où je place une variable.

    Ce que je souhaite faire c'est échapper mes apostrophes des variables qui se trouve dans ce code javascript, pour cela je ferais

    innerHTML ='addslashes($1);' mais nop ça marche pas, dans le code source il m'affiche addslashes(puis le code html de $1); , en gros il prend pas en compte le php

    voila mon preg replace entier

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $message = preg_replace("#\[spoil2=(.+)\](.+)\[/spoil2=(.+) var=(.+)\]#isU", "
    <div id=\"test\"><a style=\"cursor:pointer;\" onclick=\"change();\"><div id=\"momo\">$1</div></a><div id=\"popo\">$2</div></div>
    <script type=\"text/javascript\">
    function change() {
        if (document.getElementById('momo').innerHTML == 'addslashes('$4');';
            document.getElementById('popo').innerHTML = 'addslashes('$2');';
        }   else {
            document.getElementById('momo').innerHTML = 'addslashes('$4');';
            document.getElementById('popo').innerHTML = 'addslashes('$3');';
        }               
    }
     
    </script>", $message);

    Vous avez des idées ? merci !

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Tu ne peux pas procéder comme ça... Le second paramètre de preg_replace() est une chaine de caractères (ou un tableau de chaines), tu ne peux donc pas y appeler de fonction PHP.
    En plus, tu multiplies les définitions de fonctions JavaScript ayant le même nom, c'est n'importe quoi...
    Il faut que tu revoies complètement le fonctionnement de ton truc en séparant correctement les traitements serveur (PHP) des traitements client (JavaScript) sinon, tu ne pourras pas t'en sortir !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Août 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Août 2013
    Messages : 18
    Par défaut
    mince alors, existerais-t-il pas quelque chose pour échapper les apostrophes seulement de ces variables ? (sans devoir le faire à la main : passer par le panel où j'écris mes articles) et sans devoir tout revoir le preg replace ?

    en tout cas merci de ta réponse

  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
    Pourquoi tu veux échapper tes apostrophes ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Août 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Août 2013
    Messages : 18
    Par défaut
    Vu que ses variables se trouvent dans un code javascript, si il y a une apostrophe dans une variable à l'affichage, la fonction plante, coince, marche pas. En gros lors du onclick, la fonction change fonctionne pas.

  6. #6
    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
    Si j'arrive à te suivre, tu as une fonction Javascript qui remplace le contenu de 2 <div> par un nouveau texte.
    Où et comment est défini le nouveau texte ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. Utiliser php dans javascript pour traitement sur value d'une combobox
    Par filiplarlibe dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/03/2010, 12h43
  2. php dans javascript (innerHTML)
    Par kanabzh29 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/09/2008, 16h03
  3. Réponses: 2
    Dernier message: 15/06/2007, 00h35
  4. Réponses: 2
    Dernier message: 13/03/2007, 09h21

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