Hello
Voila pour un site de petites annonces, je fais une fonction d'affichage d'annonce que je vous donne pas en entier ici.
Il y a plusieurs types d'affichages : la visu normale, l'admin (idem + boutons modifier et supprimer), la prévisualisation (boutons différents) etc
Ils ont tous en gros la même gueule, c'est pour ça que j'en fais une fonction.
Les boutons de ces affichages ont eux aussi tous la même gueule, ce sont des formulaires qui renvoyent tous les memes valeurs, mais à des scripts diffénrents bien sur.
A l'intérieur de cette fonction, j'y mets donc une fonction qui crée un bouton.
Code :
- function Aff_Ann($param, $ligne, $tab_POST, $argSupp=0) {
- // parfois les params arrivent du $_POST, parfois de la BDD ($ligne)
- $texte=""; $nom=""; $prenom="";
- switch ($param) {
- case "showtout" : case "visu" : { $texte = $ligne['MESSAGE'];
- $nom = $ligne['NOM']; $prenom = $ligne['PRENOM']; $cle = $ligne['CLE']; break; }
- case "previsu" : { echo "fok"; $texte = $tab_POST['iTexte'];
- $nom = $tab_POST['iNom']; $prenom = $tab_POST['iPrenom']; $cle = $tab_POST['iNumAn']; break; }
- default : {$texte=""; $nom=""; $prenom="";}
- }
- if (!isset($passeparla)) {
- function Aff_Bouton($value, $action) { ?>
- <form method="post" action="annoncesadmin.php">
- <input type="hidden" name="iNom" value="<? echo $nom ?>">
- <input type="hidden" name="iPrenom" value="<? echo $prenom ?>">
- <input type="hidden" name="iTexte" value="<? echo $texte ?>">
- <input type="hidden" name="iAction" value="<? echo $action ?>">
- <input type="hidden" name="iNumAn" value="<? echo $cle ?>">
- <input type="submit" name="iOK" value="<? echo $value ?>">
- </form>
- <? }
- }
- static $passeparla = 1;
- // ... ... ...
- }
|
pb 1 : la variable statique est censée empécher de définir 2 fois la fonction, hors le message d'erreur est tjrs là (fonction Aff_Bouton définie 2 fois)
pb 2 : à l'intérieur de le fonction fille Aff_Bouton(), les variables $cle, $prenom, $nom, $texte définies dans la fonction mère Aff_Ann() sont inconnues, ça c'est normal, mais comment y accéder ??? Elles ne sont ni globales, ni locales...
Bon vous voyez en gros les pbs j'espère...
Aidez moi je suis si seul
Merci
Message édité par theredled le 27-05-2006 à 19:44:04