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] Besoin d'aide sur eval()


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de KneXtasY
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 121
    Points : 109
    Points
    109
    Par défaut [PHP-JS] Besoin d'aide sur eval()
    Bonjour,

    J'ai actuellement une variable $liens['a'] contenant la chaîne :
    href="javascript:transferMagasin($mag_ID,'$mag_NOMMAG')"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $liens['a'] = 'href="javascript:transferMagasin($mag_ID,\'$mag_NOMMAG\')"';
    Je souhaite obtenir une nouvelle chaîne en remplaçant les $... par leur valeur.

    Ceux qui vont me répondre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $resultat = 'href="javascript:transferMagasin('.$mag_ID.',\''.$mag_NOMMAG.'\')"';
    ==================> []

    car $mag_ID et $mag_NOMMAG n'existent pas lors de la création de $liens['a'].

    J'ai pensé à la fonction eval().
    L'utilisation sur un exemple simple comme celui de la documentation est assez facile.

    Mais en essayent plus "compliqué", c'est le drâme ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    eval('$res = '.$liens['a'].';');
    Je suis bien conscient que les erreurs que j'obtiens doivent venir des chaines de caractères .

    Pouvez vous m'aider ?

    Merci d'avance.

  2. #2
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    car $mag_ID et $mag_NOMMAG n'existent pas lors de la création de $liens['a'].
    tu gardes $liens['a'] jusqu'a ce qu'ils existent.

  3. #3
    Membre régulier Avatar de KneXtasY
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 121
    Points : 109
    Points
    109
    Par défaut
    C'est bien ce que je fais !

    Une fois que j'ai accès à $mag_ID et $mag_NOMMAG, je souhaite recréer la chaîne correcte.

    Je souhaite donc utiliser liens['a'] pour afficher les liens avec les vraies valeurs.
    Le contenu de $liens['a'] n'est pas connu à l'avance et un $liens['a'] sert à générer plusieurs liens sous le même format.

    En fait, je récupére un fichier de config contenant les liens à afficher et les paramètres d'affichage et je souhaite l'utiliser afin de générer l'affichage des liens pour chacun des éléments de ma table. D'ou le $mag_ID et le $mag_NOMMAG.

    C'est pas trés clair .

    Je sais, je me prends la tête pour rien mais c'est pour faire un jolie tableau paramétré qui sera réutilisable dans de nombreux cas.
    Ainsi en fonction d'un mode d'affichage, j'afficherais ou non les colonnes (comme les liens par exemple, un liens = une colonne en plus).

    Enfin le problème est juste de remplacer des noms de variables contenus dans une chaîne par le contenu de ces variables.

  4. #4
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $liens['a'] = 'href="javascript:transferMagasin('.$mag_ID.',\''.$mag_NOMMAG.'\')"';
    moi je dis d'éxécuter cela quand les variables seront initialisée.

    tu peux pas ?

    si tu peux vraiment pas fait plutot ###ICI### et apres tu fait str_replace, mais bon ...

  5. #5
    Membre régulier Avatar de KneXtasY
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 121
    Points : 109
    Points
    109
    Par défaut
    Citation Envoyé par Maxoo
    si tu peux vraiment pas fait plutot ###ICI### et apres tu fait str_replace, mais bon ...
    Oué j'y avais pensé aussi mais le problème est que je suis pas sensé savoir à l'avance la variabe qu'il faut mettre à la place de ###ICI###.

    A moins que je fasse ###mag_NOMMAG###.

    Le résultat pourrait être obtenu plus facilement (c'est déja fait d'ailleurs), mais j'aimerais un système qui marche dans presque tout les cas.

    Mais bon si ça continue, je vais finir par coder un système de templates et mon cerveau ne va pas apprécier .

    J'abandonne ... sauf si quelqu'un à une piste avec eval() .

  6. #6
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    bah je pige pas, tu le sauras quand ce qu'elle vaut ta valeur ?
    le jour ou tu le sais tu fais un str_replace, non ??

  7. #7
    Membre régulier Avatar de KneXtasY
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 121
    Points : 109
    Points
    109
    Par défaut
    le jour ou tu le sais tu fais un str_replace, non ??
    Oui je suis d'accord mais je ne connaissais pas non plus le nom de la variable.
    J'ai donc mis dans un tableau tout les noms de variables à remplacer.
    Pour chaque variable à remplacer $field, j'obtiens sa valeur :
    C'est pour cela que j'étais parti sur un eval() .
    Mais effectivement la piste str_replace est bonne !

    Pour comprendre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $href[] = Array(
    'type' => 'javascript', 
    'a' => 'Ajouter',
    'href' => 'href="javascript:transferMagasin(###mag_IDMAG###,\'###mag_NOMMAG###\')',
    'champs' => Array('mag_IDMAG','mag_NOMMAG'),
    );
    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
    // $liens correspond à un élément de $href[]
    if($liens['type'] == 'javascript'){
     
    // $ligne est le résultat d'un mysql_fetch_assoc()
    $mag_IDMAG = $ligne['mag_IDMAG'];
    $mag_NOMMAG = $ligne['mag_NOMMAG'];
     
    foreach($liens['champs'] as $field){
    	$liens['href'] = str_replace('###'.$field.'###',${$field},$liens['href']);
    }
     
    echo '<td><a '.$liens['href'].'">';
    echo $liens['a'];
    echo '</a></td>';
    }
    Merci Maxoo.

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

Discussions similaires

  1. Début avec PHP, besoin d'aide sur outils
    Par Enill dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 06/08/2011, 15h28
  2. [PHP 5.2] Besoin d'aide sur l'ouverture de fichier à distance en PHP
    Par Alahel dans le forum Langage
    Réponses: 1
    Dernier message: 02/02/2010, 01h18
  3. Réponses: 0
    Dernier message: 04/12/2009, 14h17
  4. Réponses: 3
    Dernier message: 09/04/2008, 14h24
  5. Besoin d'aide sur PHP/MyAdmin
    Par fabris dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 30/03/2006, 20h54

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