par
filou80 » 09 avr. 2023, 08:49
Bonjour à tous,
J'ai encore besoin de votre aides de vos conseils.
Je souhaite faire une liste pour choisir un avatar.
J'utilise l'architecture MVC.
Sur mon serveur j'ai un dossier avatar ou se trouve les images.
voici mon modele :
Code : Tout sélectionner
<?php
require_once(dirname(__FILE__).'/../Public/Utiles/database.php');
class ChoixAvatars
{
private $id;
private $url;
private $pdo;
// Methode magique pour hydraté l'objet
public function __construct($id = NULL, $url = NULL)
{
$this->id = $id;
$this->url = $url;
$this->pdo = Database::getInstance();
}
function __set($property, $value)
{
$this->$property = $value;
}
// Requête SQL pour récupérer les données de la table
public function voirAvatars()
{
$sql = 'SELECT * FROM avatars';
$req = $this->pdo->prepare($sql);
if ($req->execute()) {
$results = $req->fetchAll();
return $results;
} else {
echo 'Une erreur est survenue lors de l\'exécution de la requête.';
return false;
}
}
}
Voici mon controleur :
Code : Tout sélectionner
<?php
require_once(dirname(__FILE__).'/../Public/Utiles/regex.php');
// Inclure le modele
require_once(dirname(__FILE__).'/../Modeles/ChoixAvatars.php');
//Démarrer une nouvelle session
session_start();
$code = trim(filter_input(INPUT_GET, 'code', FILTER_SANITIZE_NUMBER_INT));
// Appel de la méthode voirTable pour récupérer les données de la table
$choixAvatar = new ChoixAvatars();
$results = $choixAvatar->voirAvatars();
/// VOIR CONTROLE DES CHAMPS
//On verifie que le formulaire est envoyé
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$avatars = trim(filter_input(INPUT_POST, 'avatars', FILTER_SANITIZE_NUMBER_INT));
var_dump($avatars);
exit;
}
include(dirname(__FILE__).'/../Vues/connexionInscription.php');
Voici ma vue au niveau de l'avatar :
Code : Tout sélectionner
<!-- Avatars -->
<div class="col-8 input-group mb-3">
<div class="input-group-text">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-person-bounding-box" viewBox="0 0 16 16">
<path d="M1.5 1a.5.5 0 0 0-.5.5v3a.5.5 0 0 1-1 0v-3A1.5 1.5 0 0 1 1.5 0h3a.5.5 0 0 1 0 1h-3zM11 .5a.5.5 0 0 1 .5-.5h3A1.5 1.5 0 0 1 16 1.5v3a.5.5 0 0 1-1 0v-3a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 1-.5-.5zM.5 11a.5.5 0 0 1 .5.5v3a.5.5 0 0 0 .5.5h3a.5.5 0 0 1 0 1h-3A1.5 1.5 0 0 1 0 14.5v-3a.5.5 0 0 1 .5-.5zm15 0a.5.5 0 0 1 .5.5v3a1.5 1.5 0 0 1-1.5 1.5h-3a.5.5 0 0 1 0-1h3a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 1 .5-.5z"/>
<path d="M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1H3zm8-9a3 3 0 1 1-6 0 3 3 0 0 1 6 0z"/>
</svg>
</div>
<select class="form-control" id="avatars" name="avatars">
<option value="custom">Sélectionner un avatar (option)</option>
<?php
// Vérifier si les résultats sont un tableau d'objets
if (is_array($results)) {
// Boucle pour parcourir les résultats de la requête
foreach ($results as $result) {
// Utiliser l'URL de l'image comme valeur et comme texte de l'option
echo '<option value="' . $result->url . '" data-image="' . $result->url . '"><img src="' . $result->url . '" alt="Avatar" class="avatar-image"> ' . $result->url . '</option>';
}
}
?>
</select>
</div>
<!-- Fin avatars -->
<div class="avatar-select">
<span class="avatar-label">Sélectionner un avatar :</span>
<div class="avatar-dropdown">
<img class="avatar-image" src="/../Public/Avatars/1.png" alt="Avatar 1">
<img class="avatar-image" src="/../Public/Avatars/2.png" alt="Avatar 2">
<img class="avatar-image" src="/../Public/Avatars/3.png" alt="Avatar 3">
<img class="avatar-image" src="/../Public/Avatars/4.png" alt="Avatar 4">
<img class="avatar-image" src="/../Public/Avatars/5.png" alt="Avatar 5">
<img class="avatar-image" src="/../Public/Avatars/6.png" alt="Avatar 6">
<img class="avatar-image" src="/../Public/Avatars/7.png" alt="Avatar 7">
</div>
</div>
dans la première partie cela affiche le url mais pas l'image mais la deuxième partie affiche ce que je veux mais impossible a mettre dans ma boucle .
Merci par avances pour vos conseils et votre aide.
Bon week end.
@+ Filou
Bonjour à tous,
J'ai encore besoin de votre aides de vos conseils.
Je souhaite faire une liste pour choisir un avatar.
J'utilise l'architecture MVC.
Sur mon serveur j'ai un dossier avatar ou se trouve les images.
voici mon modele :
[code]<?php
require_once(dirname(__FILE__).'/../Public/Utiles/database.php');
class ChoixAvatars
{
private $id;
private $url;
private $pdo;
// Methode magique pour hydraté l'objet
public function __construct($id = NULL, $url = NULL)
{
$this->id = $id;
$this->url = $url;
$this->pdo = Database::getInstance();
}
function __set($property, $value)
{
$this->$property = $value;
}
// Requête SQL pour récupérer les données de la table
public function voirAvatars()
{
$sql = 'SELECT * FROM avatars';
$req = $this->pdo->prepare($sql);
if ($req->execute()) {
$results = $req->fetchAll();
return $results;
} else {
echo 'Une erreur est survenue lors de l\'exécution de la requête.';
return false;
}
}
}[/code]
Voici mon controleur :
[code]<?php
require_once(dirname(__FILE__).'/../Public/Utiles/regex.php');
// Inclure le modele
require_once(dirname(__FILE__).'/../Modeles/ChoixAvatars.php');
//Démarrer une nouvelle session
session_start();
$code = trim(filter_input(INPUT_GET, 'code', FILTER_SANITIZE_NUMBER_INT));
// Appel de la méthode voirTable pour récupérer les données de la table
$choixAvatar = new ChoixAvatars();
$results = $choixAvatar->voirAvatars();
/// VOIR CONTROLE DES CHAMPS
//On verifie que le formulaire est envoyé
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$avatars = trim(filter_input(INPUT_POST, 'avatars', FILTER_SANITIZE_NUMBER_INT));
var_dump($avatars);
exit;
}
include(dirname(__FILE__).'/../Vues/connexionInscription.php');
[/code]
Voici ma vue au niveau de l'avatar :
[code] <!-- Avatars -->
<div class="col-8 input-group mb-3">
<div class="input-group-text">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-person-bounding-box" viewBox="0 0 16 16">
<path d="M1.5 1a.5.5 0 0 0-.5.5v3a.5.5 0 0 1-1 0v-3A1.5 1.5 0 0 1 1.5 0h3a.5.5 0 0 1 0 1h-3zM11 .5a.5.5 0 0 1 .5-.5h3A1.5 1.5 0 0 1 16 1.5v3a.5.5 0 0 1-1 0v-3a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 1-.5-.5zM.5 11a.5.5 0 0 1 .5.5v3a.5.5 0 0 0 .5.5h3a.5.5 0 0 1 0 1h-3A1.5 1.5 0 0 1 0 14.5v-3a.5.5 0 0 1 .5-.5zm15 0a.5.5 0 0 1 .5.5v3a1.5 1.5 0 0 1-1.5 1.5h-3a.5.5 0 0 1 0-1h3a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 1 .5-.5z"/>
<path d="M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1H3zm8-9a3 3 0 1 1-6 0 3 3 0 0 1 6 0z"/>
</svg>
</div>
<select class="form-control" id="avatars" name="avatars">
<option value="custom">Sélectionner un avatar (option)</option>
<?php
// Vérifier si les résultats sont un tableau d'objets
if (is_array($results)) {
// Boucle pour parcourir les résultats de la requête
foreach ($results as $result) {
// Utiliser l'URL de l'image comme valeur et comme texte de l'option
echo '<option value="' . $result->url . '" data-image="' . $result->url . '"><img src="' . $result->url . '" alt="Avatar" class="avatar-image"> ' . $result->url . '</option>';
}
}
?>
</select>
</div>
<!-- Fin avatars -->
<div class="avatar-select">
<span class="avatar-label">Sélectionner un avatar :</span>
<div class="avatar-dropdown">
<img class="avatar-image" src="/../Public/Avatars/1.png" alt="Avatar 1">
<img class="avatar-image" src="/../Public/Avatars/2.png" alt="Avatar 2">
<img class="avatar-image" src="/../Public/Avatars/3.png" alt="Avatar 3">
<img class="avatar-image" src="/../Public/Avatars/4.png" alt="Avatar 4">
<img class="avatar-image" src="/../Public/Avatars/5.png" alt="Avatar 5">
<img class="avatar-image" src="/../Public/Avatars/6.png" alt="Avatar 6">
<img class="avatar-image" src="/../Public/Avatars/7.png" alt="Avatar 7">
</div>
</div>[/code]
dans la première partie cela affiche le url mais pas l'image mais la deuxième partie affiche ce que je veux mais impossible a mettre dans ma boucle .
Merci par avances pour vos conseils et votre aide.
Bon week end.
@+ Filou