Besoin d'aide pour remplir une liste déroulante

Eléphanteau du PHP | 24 Messages

07 juin 2016, 16:20

Bonjour à tous et à toute !

Je dois créer une interface web afin d'attribuer un ordinateur à un employé, et cette interface possède plusieurs pages. Une pour choisir si le PC est fixe ou portable (nommée choixTypeOrdi), une pour afficher une liste déroulante comportant tout les ordinateurs fixe ou portable selon le choix de l'utilisateur (nommée afficheOrdi.php), une page pour choisir le lieu de l'entreprise (qui est assez importante et présente dans plusieurs ville en France) qui est contenu dans une BDD ainsi que l'employé dans une seconde liste déroulante, en fonction du lieu, qui lui aussi est dans une BDD (page nommée affecterUtilisateur) et pour finir une page récapitulative, et si on valide, les données sont envoyé sur une BDD.

J'ai créer quatre classes, une ordinateur, une gestionOrdi, une user, une gestionUser.

Sur la page afficheOrdi, après le choix du PC j'ai :
<?php
$ordi;
 
	if(isset($_POST["ordi"]))
	{
	$ordi = $_POST["ordi"];
	}

echo "Votre ordinateur est un " .$ordi.".";
?>
Comme ça, l'entreprise a une trace de son choix précédent.
<h3 id="ordinateurs">Choisir l'ordinateur à affecter :</h3>
	<?php 
	if($ordi == "Ordinateur Fixe")
	{
		
	}
	else
	{
		
	}
	?>
	<form id="frmOrdi" name="frmOrdi" action="affecterUtilisateur.php" method="post">	
	<SELECT name="listeOrdi" size="">
	<option>1</option>
	<?php
	foreach($ordinateurs as $ordinateur)
	{
		?>
		<option><?php echo utf8_encode($ordinateur->name); ?></option>				
		<?php
	}
	?>
	</select>
	</form>
J'aimerai compléter ce minuscule bout de code, et je ne trouve vraiment pas. Je sais que mon foreach dans le select est complètement faux...
J'ai aussi mis en place le MVC, donc si il faut le controller ou quoi, c'est dispo.

Merci d'avance pour votre aide, je sais que je demande beaucoup, mais voilà, je bloque vraiment et c'est vraiment important, je ne sais pas pourquoi je n'y arrive pas ...

Eléphant du PHP | 176 Messages

07 juin 2016, 16:31

Bonjour Freezon,


Ton foreach devrait être de la forme suivante:

Code : Tout sélectionner

foreach($ordinateurs as $ordinateur) { echo "<option>".utf8_encode($ordinateur->name)."</option> "; }
Cordialement
Naroth

Eléphanteau du PHP | 24 Messages

07 juin 2016, 16:46

Bonjour Freezon,


Ton foreach devrait être de la forme suivante:

Code : Tout sélectionner

foreach($ordinateurs as $ordinateur) { echo "<option>".utf8_encode($ordinateur->name)."</option> "; }

Merci pour la correction, néanmoins, ce n'est pas ça qui m'aide réellement, ce qui est assez problématique, mais je prend en compte la syntaxe, merci !

Eléphant du PHP | 176 Messages

07 juin 2016, 19:59

Autant pour moi.
Le problème c'est qu'avec un tel foreach (et surtout les options) tu ne peux pas récupérer la valeur dans ton post puisque tu ne sais pas quel option est choisie !

Il te manque l'attribut value dans la balise option

Code : Tout sélectionner

foreach($ordinateurs as $ordinateur) { echo "<option value='".utf8_encode($ordinateur->name)."'>".utf8_encode($ordinateur->name)."</option> "; }
Cordialement
Naroth

Eléphanteau du PHP | 24 Messages

08 juin 2016, 08:58

Autant pour moi.
Le problème c'est qu'avec un tel foreach (et surtout les options) tu ne peux pas récupérer la valeur dans ton post puisque tu ne sais pas quel option est choisie !

Il te manque l'attribut value dans la balise option

Code : Tout sélectionner

foreach($ordinateurs as $ordinateur) { echo "<option value='".utf8_encode($ordinateur->name)."'>".utf8_encode($ordinateur->name)."</option> "; }

Bah en faite, ce que je veux récupérer et dans une BDD. Je suis assez perdu quant à l'utilisation de ces données. J'ai une table computers avec 22 colonnes, et je veux récupérer juste une colonne, le nom de l'ordinateur sous la forme : POS (pour poste fixe) ou POR (pour poste portable) le numéro de poste 001 à 999, et l'année A14 (Année 2014) donc on a par exemple POS512A15.
Je galère assez...

Eléphant du PHP | 176 Messages

08 juin 2016, 17:41

L'interrogation d'une base de données et le traitement des données de celle-ci se fait en plusieurs étapes

1. Connexion à la base de données. En php plusieurs possibilités :
- PDO - http://php.net/manual/fr/book.pdo.php
- mysqli - http://php.net/manual/fr/book.mysqli.php
- mysql - http://php.net/manual/fr/intro.mysql.php (deprecated)
- etc...
2. Ecriture d'une requête SQL permettant d'interroger la base de données
3. Exécution de la requête
4. Traitement des données renvoyées par la base de données

Est-ce que tu connais tout cela ?
Sur quoi tu as besoin de plus de lumière ?
Cordialement
Naroth

Eléphanteau du PHP | 24 Messages

08 juin 2016, 17:50

Dans tout les codes que j'ai donné, j'arrive pas a écrire dans la liste déroulante. Le reste, j'ai fais une classe, j'ai fais la connexion, j'ai fait tout ça.