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 :

Fonction avec substitution de code


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 37
    Points : 21
    Points
    21
    Par défaut Fonction avec substitution de code
    Bonjour,

    J'aimerais créer une fonction qui reprendrait le code ci-dessous et dont les paramètres seraient la variable $requete et surtout substituer "e_Nom" (y compris dans $_POST['p_e_Nom'] par un deuxième paramètre).
    J'ai essayé avec la fonction Eval mais sans succès.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if ( isset($_POST['p_e_Nom']) && ($_POST['p_e_Nom'] != $e_Nom) )	{
    		$e_Nom = $_POST['p_e_Nom'];
    		$requete = 'update mnm_exploitant set nom = \''.$e_Nom.'\' where code = \''.$e_Code.'\';'; 
    		$query = $dbCnx->sqlExec($requete);
    }

  2. #2
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    tu peux essayer ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function nom_de_la_fonction($e_Nom, $e_Code, $dbCnx)
    {
    	if ( isset($_POST['p_e_Nom']) && ($_POST['p_e_Nom'] != $e_Nom) )    {
    		$e_Nom = $_POST['p_e_Nom'];
            $requete = 'update mnm_exploitant set nom = \''.$e_Nom.'\' where code = \''.$e_Code.'\';'; 
            $query = $dbCnx->sqlExec($requete);
    	}
    }

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 37
    Points : 21
    Points
    21
    Par défaut
    Merci!
    mais en fait, je me suis mal expliqué

    Je cherche à remplacer le

    $_POST['p_e_Nom']
    par
    $_POST['p_$variable']

    et rentrer un nom de variable comme paramètre (et non le contenu de la variable)

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 214
    Points : 208
    Points
    208
    Par défaut
    salut,
    essaies : $_POST['p_'.${$variable}]

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 37
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par jibouze Voir le message
    salut,
    essaies : $_POST['p_'.${$variable}]
    c'est ce que je cherchais! merci

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 37
    Points : 21
    Points
    21
    Par défaut
    Je bloque encore sur ces maudites variables, qu'est ce ne va pas dans ce code??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    global $variable; // Activé ou pas, ça ne change rien
    global $title; // Activé ou pas, ça ne change rien
    $title = 'Bla Bla Bla';
     
    function MakeTR($name, $variable) {
    print '<tr><td>'.$name.'</td><td><input id="p_'.$variable.'" name="p_'.$variable.'" value=" '.${$variable}.'"></input></td></tr>';
    }
    ?>
     
    <?php MakeTR('Titre','title'); ?>
    Ce qui me donnerait cette ligne ci dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    	<tr><td>Titre</td><td><input id="p_title" name="p_title" value="<?php echo $title;?>"></input></td></tr>

  7. #7
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    La définition de globalité d'une variable se fait A L'INTERIEUR de la fonction.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function MakeTR($name, $variable) {
        global $variable;
        global $Title;
        print '<tr><td>'.$Title.'</td><td><input id="p_'.$variable.'"    name="p_'.$variable.'" value=" '.$$variable.'"></input></td></tr>';
    }
    Remarquez également que le construct ${$var} est semblable à $$var dans ce contexte.
    Enfin, l'utilisation de printf peut-être une solution à la lisibilité du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function MakeTR($name, $variable) {
        global $variable;
        global $Title;
        printf('<tr><td>%s</td><td><input id="p_%2$s" name="p_%2$s" value="%s"></input></td></tr>', $Title, $variable, $$variable);
    }

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 37
    Points : 21
    Points
    21
    Par défaut
    Merci! Mais malgré la définition de la globalité ou non, et la syntaxe ${$variable} ou $$variable, je n'arrive pas à afficher le contenu de $title

  9. #9
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Je t'avoue ne pas comprendre ce que tu veux faire, aussi je te donne ce petit snippet de code qui utilise un petit florilège des techniques évoquées précédemment :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    function MakeTR($name, $variable) {
        global $title;
        printf('<tr><td>%1$s</td><td><input id="p_%2$s" name="p_%2$s" value="%3$s"></input></td></tr>', $title, $variable, $$variable);
    }
     
    $title = 'Bla Bla Bla';
    $var   = 'title';
     
    MakeTR('Titre', $var);

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 37
    Points : 21
    Points
    21
    Par défaut
    Ok je vais reformuler ma question:

    J'aimerais qu'à l'aide d'une fonction je puisse afficher le code ci-dessous:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    $titlecontent = 'Nouveau titre Contenu';
    ?>
    <tr><td>Nouveau Titre</td><td><input id="p_title" name="p_title" value="'.$titlecontent.'"></input></td></tr>
    soit en HTML:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <tr><td>Titre</td><td><input id="p_title" name="p_title" value="Nouveau titre Contenu"></input></td></tr>
    J'ai tenté une fonction, mais sans succès:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $titlecontent = 'Nouveau titre Contenu';
     
    function MakeTR($name, $variable) {
    print '<tr><td>'.$name.'</td><td><input id="p_title" name="p_title" value=" '.${$variable}.'"></input></td></tr>';
    }
    ?>
    <?php MakeTR('Nouveau titre',$titlecontent); ?>
    Mon soucis est au niveau de la variable variable, y'a un truc que je n'ai pas bien saisi

Discussions similaires

  1. undefined reference to 'fonction()' avec code block
    Par Marmoccelle dans le forum Code::Blocks
    Réponses: 8
    Dernier message: 01/02/2019, 16h15
  2. Réponses: 8
    Dernier message: 12/02/2013, 01h08
  3. Réponses: 1
    Dernier message: 01/02/2013, 14h53
  4. Appeler une fonction avec/sans parenthèses
    Par haypo dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 29/12/2002, 18h48
  5. Une fonction avec des attributs non obligatoires
    Par YanK dans le forum Langage
    Réponses: 5
    Dernier message: 15/11/2002, 13h39

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