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-JS] Générer appel d'une fonction Javascript prenant des paramètres


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 55
    Points : 39
    Points
    39
    Par défaut [PHP-JS] Générer appel d'une fonction Javascript prenant des paramètres
    Bonjour, j'ai besoin d'utiliser un mélange de php et de javascript.

    Voici ma fonction java:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function add_quote(nick, text)
    {
        var oEditor = FCKeditorAPI.GetInstance('FCKeditor2');
        oEditor.InsertHtml('<b>'+nick+' a écrit:</b><table border=1 cellpadding=2 cellspacing=2 bordercolor=#333333><tr ><td><font color=#EEE8AA>'+text+'</font></td></tr></table><br>');
        oEditor.Focus();
    }
    Bon en fait elle est pas super importante mais c'est pour fixer les idées. Je me sers d'un module de type FCKeditor.

    Ensuite, j'ai besoin d'utiliser un lien qui appelle cette fonction avec comme arguments les variables $l->poster et $comment.
    Seulement, $comment contient des virgules, parenthèses et tout type de ponctuation et de caractèress. Ce qui fout en l'air mon echo.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<a href=\"javascript:add_quote(".$l->poster.",".$comment.")\">citer</a>";
    Ma question: quelle syntaxe dois-je utiliser pour appeler correctement ma fonction ?
    Merci d'avance

  2. #2
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Salut, tu peux utiliser la fonction addslashes

    Bon développement
    Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

    F.A.Q. : Java, PHP, (X)HTML / CSS

    N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 55
    Points : 39
    Points
    39
    Par défaut
    Bonjour
    addslashes n'échappe pas les virgules ni les parenthèses il me semble non ?

    En tout cas, j'avais déjà pensé à cette fonction mais le résultat n'y est tjs pas

  4. #4
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    En effet, cette fonction n'échappe pas les virgules ni les parenthèses ; mais pourquoi veux-tu les échapper ?
    Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

    F.A.Q. : Java, PHP, (X)HTML / CSS

    N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Citation Envoyé par ThunderBolt_
    addslashes n'échappe pas les virgules ni les parenthèses il me semble non ?
    Non mais sa fonction analogue addcslashes, elle le permet grâce à son deuxième paramètre définissant les caractères (regroupés sous la forme d'une chaîne) à échapper.

    Toutefois ce paramètre Javascript, ne doit-il pas être sous la forme d'une chaîne également, auquel il doit commencer et finir par un quote et par conséquent il ne reste plus qu'un caractère à échapper ?


    Julp.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 55
    Points : 39
    Points
    39
    Par défaut
    supponsons que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $comment = "Hello World :)";
    $$l->poster = "toto";
    Alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<a href=\"javascript:add_quote(".addslashes($l->poster).",".addslashes($comment).")\">citer</a>";
    Affichera
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="javascript:add_quote(toto,Hello World :))">citer</a>
    error: unterminated string literal

  7. #7
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    D'accord, mais il faut que tu mettes des quotes pour tes paramètres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo '<a href="javascript:add_quote(\''.addslashes($l->poster).'\',\''.addslashes($comment).'\')">citer</a>';
    Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

    F.A.Q. : Java, PHP, (X)HTML / CSS

    N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème

  8. #8
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 55
    Points : 39
    Points
    39
    Par défaut
    Bon ça coince un coup sur 1x/10 :/

    Ya des messages qui passent, d'autres pas.
    Exemple d'un msg qui coince:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javascript:add_quote('ToTo','<p>%C2%A0D\'ailleurs Thund parle %C3%A0 Lapero du warn imaginaire histoire que %C3%A7a soit regl%C3%A9 :)</p>%0D%0A<p>Sinon nice news</p>')

    unterminated string literal
    p>') (line 1)
    add_quote('ToTo','<p> D\'ailleurs Thund parle à Lapero du warn imaginaire histoire que ça soit reglé </p>

  9. #9
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Apparemment, c'est le %0D%0A qui ne passe pas ; il faudrait voir au niveau de l'encodage
    Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

    F.A.Q. : Java, PHP, (X)HTML / CSS

    N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2007
    Messages : 41
    Points : 45
    Points
    45
    Par défaut
    Tu peut utiliser une combinaison de rawurlencode/unescape je crois:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "<a href=\"javascript:add_quote(unescape(\"" . rawurlencode($l->poster)  ."\"),unescape(\"".rawurlencode($comment) . "\"))\">citer</a>"

  11. #11
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 55
    Points : 39
    Points
    39
    Par défaut
    PHP ne reconnait pas la fonction unescape.
    Quelle est elle ?

  12. #12
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 55
    Points : 39
    Points
    39
    Par défaut
    Vous pouvez voir un exemple ici, mais il faut être loggé:
    http://persothunder.free.fr/lg/index.php?f=news&id=5

  13. #13
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 55
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par ThunderBolt_
    PHP ne reconnait pas la fonction unescape.
    Quelle est elle ?
    hmm je n'ai rien dit, il s'agit d'une fct java

  14. #14
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 55
    Points : 39
    Points
    39
    Par défaut
    Voici ma sauveuse:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // Escapes strings to be included in javascript
    function jsspecialchars($s) {
       	return preg_replace('/([^!#$%@()*+,-.\x30-\x5b\x5d-\x7e])/e',"'\\x'.(ord('\\1')<16? '0': '').dechex(ord('\\1'))",$s);
    	}

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

Discussions similaires

  1. [PHP-JS] Appel d'une fonction javascript
    Par philippef dans le forum Langage
    Réponses: 3
    Dernier message: 29/10/2007, 13h19
  2. Réponses: 4
    Dernier message: 30/05/2007, 18h05
  3. [PHP-JS] Variable PHP comme argument dans l'appel d'une fonction Javascript
    Par The Molo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/04/2007, 09h00
  4. [PHP-JS] appel d'une fonction javascript en php
    Par notour dans le forum Langage
    Réponses: 7
    Dernier message: 13/04/2007, 13h47
  5. Réponses: 2
    Dernier message: 03/04/2006, 18h38

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