PHP liste deroulante actualiser requette
sonar974
Messages postés
44
Date d'inscription
Statut
Membre
Dernière intervention
-
tryan44 Messages postés 1288 Date d'inscription Statut Membre Dernière intervention -
tryan44 Messages postés 1288 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'essaye actuellement d'utiliser une liste deroulante,
pour utiliser un filtrage sur la base de donnee SQL.
<!-- CONTENT -->
<div class="content-center">
<div id="products-list">
<header>
<p class="counter"><strong>01-08</strong> sur 40</p> <!-- pas encore mis en place -->
<form method="GET" action=""><select name="trie" action="">
<option value="prixAsc">Prix croissant</option>
<option value="prixDesc">Prix décroissant</option>
<option value="dateAsc">Date croissante</option>
<option value="dateDesc">Date décroissante</option>
<option value="nomAsc">Nom A-Z</option>
<option value="nomDesc">Nom Z-A</option>
</select>
</form>
</header>
<div class="products">
<?php
if(isset($_GET['trie'])) {
switch($_GET['trie']) {
case 'dateAsc':
$tri = 'date ASC';
break;
case 'dateDesc':
$tri = 'date DESC';
break;
case 'prixAsc':
$tri = 'prix ASC';
break;
case 'prixDesc':
$tri = 'prix DESC';
break;
default:
$tri = 'prix ASC';
break;
}
} else {
echo 'sa ne marche pas';
$tri = 'prix ASC';
}
try
{
// On se connecte à MySQL
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=catatest', 'root', '', $pdo_options);
// On récupère le contenu de la table en fonction de la variable tri
$sql = 'SELECT * FROM produits ORDER BY '.$tri.' LIMIT 0, 12';
$reponse = $bdd->query($sql);
// On affiche chaque entrée une à une
while ($donnees = $reponse->fetch())
{
?>
<p>
<article>
<figure><a href="produit.php?ID=<?php echo $donnees['ID']; ?>" title="Informations produits"><img src="<?php echo $donnees['photo']; ?>" alt="" /></figure>
<figcaption>
<h2>
<span class="title"><?php echo $donnees['prix']; ?>€</span>
<span class="marque"><?php echo $donnees['marques']; ?> <?php echo $donnees['ref']; ?></span>
<br />
</h2>
<br />
</figcaption>
</article>
</em>
</p>
<?php
}
$reponse->closeCursor(); // Termine le traitement de la requête
}
catch(Exception $e)
{
// En cas d'erreur précédemment, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
?>
mon souci c'est que la page s'affiche bien,
mais méme en selectionnant un autre choix dans la liste deroulante l'affichage reste pareil.
je pense qu'il faudrait réinjecter la variable dans la requette,
mais je ne trouve pas comment faire.
J'essaye actuellement d'utiliser une liste deroulante,
pour utiliser un filtrage sur la base de donnee SQL.
<!-- CONTENT -->
<div class="content-center">
<div id="products-list">
<header>
<p class="counter"><strong>01-08</strong> sur 40</p> <!-- pas encore mis en place -->
<form method="GET" action=""><select name="trie" action="">
<option value="prixAsc">Prix croissant</option>
<option value="prixDesc">Prix décroissant</option>
<option value="dateAsc">Date croissante</option>
<option value="dateDesc">Date décroissante</option>
<option value="nomAsc">Nom A-Z</option>
<option value="nomDesc">Nom Z-A</option>
</select>
</form>
</header>
<div class="products">
<?php
if(isset($_GET['trie'])) {
switch($_GET['trie']) {
case 'dateAsc':
$tri = 'date ASC';
break;
case 'dateDesc':
$tri = 'date DESC';
break;
case 'prixAsc':
$tri = 'prix ASC';
break;
case 'prixDesc':
$tri = 'prix DESC';
break;
default:
$tri = 'prix ASC';
break;
}
} else {
echo 'sa ne marche pas';
$tri = 'prix ASC';
}
try
{
// On se connecte à MySQL
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=catatest', 'root', '', $pdo_options);
// On récupère le contenu de la table en fonction de la variable tri
$sql = 'SELECT * FROM produits ORDER BY '.$tri.' LIMIT 0, 12';
$reponse = $bdd->query($sql);
// On affiche chaque entrée une à une
while ($donnees = $reponse->fetch())
{
?>
<p>
<article>
<figure><a href="produit.php?ID=<?php echo $donnees['ID']; ?>" title="Informations produits"><img src="<?php echo $donnees['photo']; ?>" alt="" /></figure>
<figcaption>
<h2>
<span class="title"><?php echo $donnees['prix']; ?>€</span>
<span class="marque"><?php echo $donnees['marques']; ?> <?php echo $donnees['ref']; ?></span>
<br />
</h2>
<br />
</figcaption>
</article>
</em>
</p>
<?php
}
$reponse->closeCursor(); // Termine le traitement de la requête
}
catch(Exception $e)
{
// En cas d'erreur précédemment, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
?>
mon souci c'est que la page s'affiche bien,
mais méme en selectionnant un autre choix dans la liste deroulante l'affichage reste pareil.
je pense qu'il faudrait réinjecter la variable dans la requette,
mais je ne trouve pas comment faire.
A voir également:
- PHP liste deroulante actualiser requette
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste déroulante google sheet - Accueil - Guide bureautique
- Liste code ascii - Guide
- Easy php - Télécharger - Divers Web & Internet
6 réponses
Salut,
Peut être en ajoutant un onchange="javascript:submit(this)" sur le select de la liste déroulante, ce qui rechargerait la page et relancerait la requête avec le nouveau choix ..?
Peut être en ajoutant un onchange="javascript:submit(this)" sur le select de la liste déroulante, ce qui rechargerait la page et relancerait la requête avec le nouveau choix ..?
Sa marche enfin!!!! merci à toi!!
j'avais deja vus cette methode sauf que je l'avais mal orthographier!!
efficace et rapide.
le soucis est résolu.
merci encore
j'avais deja vus cette methode sauf que je l'avais mal orthographier!!
efficace et rapide.
le soucis est résolu.
merci encore
Enfin presque!!!! lol
autre soucis du à l'ajout de ce code :
quand je selectionne un autre choix l'actualisation fonctionne,
mais la liste deroulante reste sur le choix par defaut!!! etonnant.
<form method="GET" action=""><select name="trie" onchange="javascript:submit(this)" action="">
<option value="prixAsc">Prix croissant</option>
<option value="prixDesc">Prix décroissant</option>
<option value="dateAsc">Date croissante</option>
<option value="dateDesc">Date décroissante</option>
<option value="nomAsc">Nom A-Z</option>
<option value="nomDesc">Nom Z-A</option>
</select>
</form>
je souhaiterais que lorsque l'utilisateur selectionne un choix que la page s'actualise, mais aussi que la liste deroulante affiche se choix.
autre soucis du à l'ajout de ce code :
quand je selectionne un autre choix l'actualisation fonctionne,
mais la liste deroulante reste sur le choix par defaut!!! etonnant.
<form method="GET" action=""><select name="trie" onchange="javascript:submit(this)" action="">
<option value="prixAsc">Prix croissant</option>
<option value="prixDesc">Prix décroissant</option>
<option value="dateAsc">Date croissante</option>
<option value="dateDesc">Date décroissante</option>
<option value="nomAsc">Nom A-Z</option>
<option value="nomDesc">Nom Z-A</option>
</select>
</form>
je souhaiterais que lorsque l'utilisateur selectionne un choix que la page s'actualise, mais aussi que la liste deroulante affiche se choix.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question