switch dynamique

Eléphant du PHP | 71 Messages

03 mars 2006, 10:18

Bonjour,
je souhaite générer un switch d'où les valeurs proviennent d'une base de donnée.

Voici le code que j'ai fait :

Code : Tout sélectionner

$MENU_TEMP_EXCLU .='case \'exclu'.$affiche[0].'\' : $ID_EXCLU='.$affiche[0].'; $PAGE=\''.$page.'\'; '; if($couleur_site_temp2!='non') { $MENU_TEMP_EXCLU .='$titre_cat=\''.strtoupper(substr($affiche[1], -1, 1)).'\'; '. "couleur_site(\"$couleur_site_temp2\");"; } else { $MENU_TEMP_EXCLU .='$titre_cat=\''.strtoupper($affiche[1]).'\';'; } $MENU_TEMP_EXCLU .=' break;';
c'est la partie qui génère chaque ligne du switch. Ensuite, je fais :

Code : Tout sélectionner

switch($PAGE) { echo $MENU_TEMP_EXCLU; }
$PAGE est la variable que je récupère dans la barre d'adresse ( $PAGE=$_GET['page']; )

Le problème est que les lignes ne sont pas interprétées et donc les pages ne s'affichent pas !

Comment faire cela ?
Merci d'avance de vos réponses

Eléphant du PHP | 312 Messages

03 mars 2006, 10:48

essaye la commande eval() à laquelle tu passes ton code php.

http://www.nexen.net/index.php?option=c ... n.eval.php

Eléphant du PHP | 71 Messages

03 mars 2006, 11:12

La commande eval ne fonctionne apparement pas, voilà comemtn je l'ai traité :

Code : Tout sélectionner

$MENU_TEMP_EXCLU .='case \'exclu'.$affiche[0].'\' : $ID_EXCLU='.$affiche[0].'; $PAGE=\''.$page.'\'; '; if($couleur_site_temp2!='non') { $MENU_TEMP_EXCLU .='$titre_cat=\''.strtoupper(substr($affiche[1], -1, 1)).'\'; '. "couleur_site(\"$couleur_site_temp2\");"; } else { $MENU_TEMP_EXCLU .='$titre_cat=\''.strtoupper($affiche[1]).'\';'; } $MENU_TEMP_EXCLU .=' break;'; eval("\$MENU_TEMP_EXCLU = \"$MENU_TEMP_EXCLU\";");
et j'ai repris le même code pour l'affichage dans le switch.
Si quelqu'un connait une solution, ce serait sympa, car là ça me bloque pas mal !

Shion57
Invité n'ayant pas de compte PHPfrance

28 févr. 2017, 12:38

Bonjour,


Je relis ton bout de code avant de poster, le problème vient de ta fonction d' affichage avant le stockage dans ta variable sur laquelle tu fais le écho dans le switch, il me semble.
Par contre je suis étonné qu' il n y ai aucun affichage en sortie dans ton switch, peu être, qu' aucunes conditions n' est remplie.

Je viens de voir la date de ta demande, je suppose que tu as solutionné ton pb depuis ^_^.