8710 sujets

Développement web côté serveur, CMS

Bonjour à tous (et à toutes),

Mon premier post sur ce forum Smiley biggrin

J'ai un petit (ou gros?) soucis.

Je suis entrain de coder une appli en php (archi MVC), et j'ai une liste déroulante dynamique dans laquelle j'affiche tous les noms de personnes que je veux rechercher via ma base de données MySQL (c'est clair jusque là ?)
Donc ça, pas de soucis ça fonctionne bien.

Là où j'ai un soucis, c'est pour mon affichage : Quoi que je fasse, la liste déroulante (select html) s'affiche en haut à gauche de la page alors qu'il devrait s'afficher à la place de {option_stg} dans mon gabarit (via la fonction str_replace) et je ne comprend pas pourquoi...

Un peu de code pour vous aider :

<fieldset>
				<label for="nom_stg"> Selectionner un stagiaire : </label>
					{option_stg}
					<input type="submit" value="rechercher">
					<input href='#x' onClick='javascript:history.go(-1);return false;' class="return" type="button" value="Retour">
			</fieldset>


$f=new Formulaire("select_stg.html"); // On cree une nouvelle vue du gabarit "select_stg.html"
								
								$select_stg="SELECT id_stg,nom_stg FROM stagiaire"; //requete SQL
								$rst=$mysql->query($select_stg);
									if (!$rst) die('sh_stg_index --> Problème de requête MySQL<br/>Erreur : '.$mysql->error);
								
								$f->configurer_forma("option_stg",$f->dynlist_bd($rst,nom_stg,id_stg,nom_stg)); 
									// On remplace "option_stg" par le contenu de la fonction dynlist_bd() via str_replace
								
								$f->afficher(); //on affiche le résultat


public function dynlist_bd($rst,$name,$value,$echo) {
			echo "<select name={$name}>";
				echo"<option value=-1 style=font-style:italic>Stagiaire ... </option>";
				while($tmp=$rst->fetch_object()) {
					echo "<option value={$tmp->$value}>{$tmp->$echo}</option>";
					}
			echo "</select>";
			}


Merci d'avance pour votre aide, parce que là je deviens FOOUUUUU !! Smiley bawling
Modifié par cyp31430 (28 Jun 2013 - 14:33)
jb_gfx a écrit :
Normal, ta fonction dynlist_bd fait des echos au lieu de renvoyer un résultat.


Ca ne change pas le fait que mon affichage ne se fait pas au bon endroit sur ma page Smiley ohwell

Et je ne vois pas quoi retourner aussi ? HELP !
Tout simplement :

public function dynlist_bd($rst,$name,$value,$echo) {
	$html = "<select name={$name}>";
	$html .= "<option value=-1 style=font-style:italic>Stagiaire ... </option>";
	while($tmp=$rst->fetch_object()) {
		$html .= "<option value={$tmp->$value}>{$tmp->$echo}</option>";
	}
	$html .= "</select>";
	return $html;
}
jb_gfx a écrit :


Le HTML qu'actuellement tu affiches.


Non ça ne marche pas je viens d'essayer.

J'essaye juste d'inclure un bout de code html en faire via str_replace, sauf qu'au lieu de mettre ce bout de code à la place de la chaine à remplacer, il me le met en haut de la page.
moust a écrit :
Tout simplement :

public function dynlist_bd($rst,$name,$value,$echo) {
	$html = &quot;&lt;select name={$name}&gt;&quot;;
	$html .= &quot;&lt;option value=-1 style=font-style:italic&gt;Stagiaire ... &lt;/option&gt;&quot;;
	while($tmp=$rst-&gt;fetch_object()) {
		$html .= &quot;&lt;option value={$tmp-&gt;$value}&gt;{$tmp-&gt;$echo}&lt;/option&gt;&quot;;
	}
	$html .= &quot;&lt;/select&gt;&quot;;
	return $html;
}


J'essaye ça et je te dis Smiley smile
EDIT: mauvais timing, apparemment tu viens de résoudre ton problème. Bien joué!
Modifié par GroquikMLV (28 Jun 2013 - 14:26)
cyp31430 a écrit :


CA MARCHE !!!! Merci Smiley biggrin Smiley biggrin Smiley biggrin Smiley biggrin Smiley biggrin Smiley biggrin

C'était tout con en faite !


C'est surtout, exactement, ce que je t'ai dit de faire...
jb_gfx a écrit :
C'est surtout, exactement, ce que je t'ai dit de faire...

Il n'avait pas l'air de comprendre donc j'ai illustré tes propos ^^'
moust a écrit :

Il n'avait pas l'air de comprendre donc j'ai illustré tes propos ^^'


Oui pas de soucis. Je voulais juste lui donner une piste pour qu'il trouve la réponse par lui même. Smiley cligne