logo

NPDS : Gestion de contenu et de communauté


Content & Community Management System (CCMS) robuste, sécurisé, complet, performant, parlant vraiment français, libre (Open-Source) et gratuit.
19 visiteur(s) et 0 membre(s) en ligne.
Activité du Site

Pages vues depuis 25/05/2001 : 109 412 536

  • Nb. de membres 8 696
  • Nb. d'articles 1 695
  • Nb. de forums 26
  • Nb. de sujets 8
  • Nb. de critiques 92

Top 10  Statistiques

Index du forum »»  Le coin des codeurs »» liste déroulante + php

liste déroulante + php#12545

3Contributeur(s)
plagattearnodu59Tribal-Dolphin
3 Modérateur(s)
developpeurjpbJireck
plagatte plagatteicon_post
Bonjour à tous

Je suis en train de créer un moteur de recherche, dans lequel j'ai placé une liste déroulante. Celle ci permet à l'utilisateur parmi le critère sélectionner d'accéder à une liste de résultat. Cependant j'ai un problème parce que mon code ne marche pas. J'ai comme l'impression qu'il n'arrive pas à récupérer la variable choisie.

Je vous laisse mon code, si vous voyez l'erreur faite le moi savoir.

Code du formulaire de recherche :

<form method="get" action="resultat.php">
<table width="426" align="center">
<tr>
<td>Nom du Commerce : </td>
<td><input type="text" name="nom"></td>
</tr>
<tr>
<td>Adresse : </td>
<td><input type="text" name="adresse"></td>
</tr>
<tr>
<td valign="top">Type : </td>
<td> <select name="type">
<option> </option>
<option>Affûtage</option>
<option>Agence Immobilière</option>
<option>Auto Ecole</option>
<option>Banque</option>
<option>Bâtiment</option>
<option>Bijouterie-Horlogerie</option>
<option>Boulangerie-Patisserie</option>
<option>Boucherie</option>
<option>Carrosserie</option>
<option>Coiffure</option>
<option>Epicerie</option>
<option>Electricité</option>
<option>Entretien Jardin</option>
<option>Esthétique</option>
<option>Expert Comptable</option>
<option>Fleuriste</option>
<option>Garage</option>
<option>Grande Surface</option>
<option>Restaurant</option>
<option>Hôtel-Restaurant</option>
<option>Imprimerie</option>
<option>Lavage Auto</option>
<option>Librairie</option>
<option>Location de Matériel</option>
<option>Maçonnerie</option>
<option>Matériaux Vente</option>
<option>Menuiserie Métallique</option>
<option>Nettoyage</option>
<option>Piscine</option>
<option>Pizzéria</option>
<option>Peinture-Vitrerie</option>
<option>Plomberie</option>
<option>Pressing</option>
<option>Tabac-Journaux</option>
<option>Taxi</option>
<option>Tissu</option>
<option>Transport</option>
</select></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="recherche" value="Cherche"></td>
</tr>
<tr>
<td colspan="2" align="center"><small><input type="checkbox" name="allcriteres" value="oui">Obligatoirement tous les critères</td>
</tr>
</table>
</form>

Code de la page de résultat :

Avavnt le html :
<?
$nom=$_GET["nom"];
$adresse=$_GET["adresse"];
$type=$_POST["type"];
?>

Après :
<?php
$session=mysql_connect('localhost', "root", "");
$db=mysql_select_db("Mairie Pinsaguel");
if ( $allcriteres == "oui")
$operateur="AND";
else
$operateur="OR";
if ($nom != "")
$finrequete .= " NomCommerce LIKE '%$nom%'";
if ($adresse != "")
if ($finrequete != "")
$finrequete .= " $operateur (AdresseCommerce LIKE '%$adresse%' )";
else
$finrequete .= " (AdresseCommerce LIKE '%$adresse%' )";
if ($type != "")
if ($finrequete != "")
$finrequete .= " $operateur TypeCommerce LIKE '%$type%'";
else
$finrequete .= " TypeCommerce LIKE '%$type%'";
if ($finrequete != "")
$query="SELECT * FROM commerce WHERE $finrequete";
else
$query="SELECT * FROM commerce";

$result =mysql_query($query);
echo("<table border=1>");
echo("<tr ><td bgcolor=#99CCFF>Nom du Commerce</td><td bgcolor=#99CCFF>Adresse du Commerce</td><td bgcolor=#99CCFF>Téléphone du Commerce</td><td bgcolor=#99CCFF>Type du Commerce</td></tr>");
while ($ligne = mysql_fetch_array ($result))
{


echo("<tr>");
echo("<td bgcolor=#CCCCCC>".$ligne["NomCommerce"]."</td>");
echo("<td bgcolor=#CCCCCC>".$ligne["AdresseCommerce"]."</td>");
echo("<td bgcolor=#CCCCCC>".$ligne["TelCommerce"]."</td>");
echo("<td bgcolor=#CCCCCC>".$ligne["TypeCommerce"]."</td>");
echo("<td bgcolor=#CCCCCC>");
echo("</tr>");

}
echo("</table>");
?>

Voila si vous y arriver....
Merci beaucoup à tous
arnodu59 arnodu59icon_post
Essaye donc avec ça...



Code de la page de résultat :

Avavnt le html :
<?
$nom
=$HTTP_POST_VARS['nom'];
$adresse=$HTTP_POST_VARS[
'adresse'];
$type=$HTTP_POST_VARS[
'type'];
?>

Après :
<?php
$session=mysql_connect("localhost", "root", "");
$db=mysql_select_db("Mairie Pinsaguel");

if ( $allcriteres == "oui") {
$operateur="AND";
}else {
$operateur="OR";}


$finrequete = "";
if ( isset($HTTP_POST_VARS[
'nom'])) {
$finrequete .= " NomCommerce LIKE 
'%$nom%'"; }

if ( isset($HTTP_POST_VARS[
'adresse'])) {
$finrequete .= " $operateur (AdresseCommerce LIKE 
'%$adresse%' )";
}else{
$finrequete .= " (AdresseCommerce LIKE 
'%$adresse%' )";}

if ( isset($HTTP_POST_VARS[
'type'])) {
$finrequete .= " $operateur TypeCommerce LIKE 
'%$type%'";
}else{
$finrequete .= " TypeCommerce LIKE 
'%$type%'";}


$query="SELECT * FROM commerce WHERE $finrequete";

$result =mysql_query($query);
echo("<table border=1>");
echo("<tr ><td bgcolor=#99CCFF>Nom du Commerce</td><td bgcolor=#99CCFF>Adresse du Commerce</td><td bgcolor=#99CCFF>Téléphone du Commerce</td><td bgcolor=#99CCFF>Type du Commerce</td></tr>");
while ($ligne = mysql_fetch_array ($result))
{


echo("<tr>");
echo("<td bgcolor=#CCCCCC>" . $ligne["NomCommerce"] . "</td>&quot;");
echo("<td bgcolor=#CCCCCC>" . $ligne["AdresseCommerce"] . "</td> ");
echo("<td bgcolor=#CCCCCC>" . $ligne["TelCommerce"] . "</td>&quot;");
echo("<td bgcolor=#CCCCCC>" . $ligne["TypeCommerce"] . "</td>&quot;");
echo("<td bgcolor=#CCCCCC>");
echo("</tr>");

}
echo("</table>");
mysql_close($session);
?>


Tribal-Dolphin Tribal-Dolphinicon_post
Pour que ça fonctionne bien, je te conseille de mettre l'action du form en post et non en get
Car tes appels de varibles sont pas correctes !

Des fois tu utilises $_GET["nom"]; C correct dans ce cas.
Mais ça, c pas bon : $_POST["type"]; et $allcriteres => ces appels sont pour un formulaire utilisant post

Donc fait un choix entre les deux si tu veut que ça marche !