Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2410 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Un select identique qui ne fonctionne pas

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Un select identique qui ne fonctionne pas

n°2203030
nullosdu59
L'hiver vient!
Posté le 16-09-2013 à 04:42:35  profilanswer
 

Salut,  
 
J'ai un problème avec un système de filtre au sein de mon site wordpress utilisant ce thème pour mon agence immo: http://locality.inspirythemes.com/
 
Je tente de customiser le filtrage des biens immobiliers ("property search" sur la démo en lien, à droite du slider). Un select ne veut pas fonctionner. Le select Status fonctionne, mais pas le select mesure que j'ai créé. J'ai pourtant repris le même code que le filtre status et je l'ai adapté au nouveau champs que j'ai créé (c'est toujours mon astuce car je n'ai qu'une faible compréhension/connaissance du PHP, j'ai pourtant essayé).  
 
Le filtrage (dans mon fichier advanced-search.php):

Code :
  1. <!-- Filtre statut -->
  2.   <div class="option-bar">
  3.          <label class="option-title"><?php _e('Status','locality'); ?></label>
  4.           <select name="status" id="select-status" class="search-select">
  5.                 <?php
  6.         $status = "";
  7.                   if(!empty($_GET['status']))
  8.                    {
  9.                        $status = $_GET['status'];
  10.                    }
  11.                                    
  12.        if($status == "for-rent" )
  13.        {
  14.        echo '<option value="for-rent" selected="selected">'.__('For Rent','locality').'</option>';
  15.        }
  16.        else
  17.        {
  18.        echo '<option value="for-rent" >'.__('For Rent','locality').'</option>';
  19.        }
  20.        if($status == "for-sale" )
  21.        {
  22.        echo '<option value="for-sale" selected="selected">'.__('For Sale','locality').'</option>';
  23.        }
  24.        else
  25.        {
  26.        echo '<option value="for-sale" >'.__('For Sale','locality').'</option>';
  27.        }
  28.        if($status == "sold" )
  29.        {
  30.        echo '<option value="sold" selected="selected">'.__('Sold','locality').'</option>';
  31.        }
  32.        else
  33.        {
  34.        echo '<option value="sold" >'.__('Sold','locality').'</option>';
  35.        }
  36.                  
  37.                  
  38.                    if($status == 'any' || empty($status))
  39.                    {
  40.                       echo '<option value="any" selected="selected">'.__( 'Any', 'locality').'</option>';
  41.                    }
  42.                    else
  43.                    {
  44.                       echo '<option value="any">'.__( 'Any', 'locality').'</option>';
  45.                    }
  46.                  
  47.                   ?>
  48.           </select>
  49.   </div>
  50. <!-- Filtre Mesure -->
  51. <div class="option-bar">
  52.          <label class="option-title"><?php _e('Mesure','locality'); ?></label>
  53.           <select name="mesure" id="select-mesure" class="search-select">
  54.                 <?php
  55.         $mesure = "";
  56.                   if(!empty($_GET['mesure']))
  57.                    {
  58.                        $mesure = $_GET['mesure'];
  59.                    }
  60.                                    
  61.        if($mesure == "petit" )
  62.        {
  63.        echo '<option value="petit" selected="selected">'.__('Petit','locality').'</option>';
  64.        }
  65.        else
  66.        {
  67.        echo '<option value="petit" >'.__('Petit','locality').'</option>';
  68.        }
  69.        if($mesure == "moyen" )
  70.        {
  71.        echo '<option value="moyen" selected="selected">'.__('Moyen','locality').'</option>';
  72.        }
  73.        else
  74.        {
  75.        echo '<option value="moyen" >'.__('Moyen','locality').'</option>';
  76.        }
  77.        if($mesure == "grand" )
  78.        {
  79.        echo '<option value="grand" selected="selected">'.__('Grand','locality').'</option>';
  80.        }
  81.        else
  82.        {
  83.        echo '<option value="grand" >'.__('Grand','locality').'</option>';
  84.        }
  85.                  
  86.                  
  87.                    if($mesure == 'any' || empty($mesure))
  88.                    {
  89.                       echo '<option value="any" selected="selected">'.__( 'Any', 'locality').'</option>';
  90.                    }
  91.                    else
  92.                    {
  93.                       echo '<option value="any">'.__( 'Any', 'locality').'</option>';
  94.                    }
  95.                  
  96.                   ?>
  97.           </select>
  98.   </div>


 
Ils correspondent avec ces champs (metabox-config.php):  
 

Code :
  1. // Statut
  2.  array(
  3.   'name'  => __('Status','locality'),
  4.   'id'  => "{$prefix}status",
  5.   'type'  => 'select',
  6.   'options' => array(    
  7.    'for-rent'  => __('For Rent','locality'),
  8.    'for-sale'  => __('For Sale','locality'),
  9.    'sold'  => __('Sold','locality'),
  10.   ),
  11.   'std'  => array( '' ),
  12.   'desc'  => __('Choose For Rent or For Sale or any other given option.','locality')
  13.  ),
  14. // Mesure
  15.  array(
  16.   'name'  => __('mesure','locality'),
  17.   'id'  => "{$prefix}mesure",
  18.   'type'  => 'select',
  19.   'options' => array(    
  20.    'Petit'  => __('Petit','locality'),
  21.    'Moyen'  => __('Moyen','locality'),
  22.    'Grand'  => __('Grand','locality'),
  23.   ),
  24.   'std'  => array( '' ),
  25.   'desc'  => __('Surface.','locality')
  26.  ),


 
Et c'est d'ailleurs pareil lorsque je mets deux fois le filtre "Status" (un simple copier-coller). L'un filtre, l'autre ne fonctionne pas.  
 
Y'a t-il peut-être un troisième fichier en jeu pour la mise en place de ce système de filtrage (du javascript que j'ai trouvé et dont je ne comprends rien...)?
 
Auriez vous sympathiquement une solution à ce problème?
 
Je vous remercie par avance pour votre précieuse aide.


Message édité par nullosdu59 le 16-09-2013 à 04:47:51
mood
Publicité
Posté le 16-09-2013 à 04:42:35  profilanswer
 

n°2203034
Soileh
Lurkeur professionnel
Posté le 16-09-2013 à 09:20:01  profilanswer
 

:hello:  
 
Est-ce que ça pourrait venir de la casse dans le nom de tes variables ? :??:
 
Dans ta page de filtrage, tu testes :

Code :
  1. if($mesure == "petit" )
  2. if($mesure == "moyen" )
  3. if($mesure == "grand" )


 
Alors que dans ton tableau, cela apparaît de la manière suivante :
 

Code :
  1. 'Petit'  => __('Petit','locality'),
  2. 'Moyen'  => __('Moyen','locality'),
  3. 'Grand'  => __('Grand','locality'),


---------------
And in the end, the love you take is equal to the love you make
n°2203098
nullosdu59
L'hiver vient!
Posté le 16-09-2013 à 15:05:12  profilanswer
 

Salut Soleih,  
 
Merci pour ta réponse. Malheureusement ce n'est pas ça. J'ai modifié à de nombreuses reprises les majuscules pour éviter, justement, un éventuel problème. Ca ne donne rien.  
 
-_-'

n°2203121
MaybeEijOr​Not
but someone at least
Posté le 16-09-2013 à 16:05:26  profilanswer
 

Là tu n'as créé qu'un formulaire, derrière il te faut une base de données et un fichier pour récupérer et faire le tri dans la ta base de données.
Il te faudra aussi un fichier pour ajouter ces critères dans ta base de données.

n°2203169
nullosdu59
L'hiver vient!
Posté le 16-09-2013 à 19:13:53  profilanswer
 

Merci Maybeeijornot;
 
C'est sur Wordpress, donc j'image que la base de donnée actuelle du site prend en compte ce que je mets dans le champs. D'ailleurs, cela s'affiche sur le site, dans les biens en question.  
 
Je comprends alors qu'il y a un fichier qui gère le filtre. Ce pourrait-il que ce soit un fichier en javascript? Il y en a plusieurs dans mon thème, mais comme le javascript me semble incompréhensible (à la différence du php où j'arrive à m'y retrouver grosso merdo) je n'ai pas regardé ce qui s'y passe.  
 
Merci pour vos précieuses réponses.

n°2203179
MaybeEijOr​Not
but someone at least
Posté le 16-09-2013 à 19:33:27  profilanswer
 

Je ne sais pas comment tu as fait ton coup, est-ce que quelque part quand tu rentres un nouveau bien tu peux préciser sa taille? Si oui alors au moins tout ça se trouve dans la base de données, il n'y a donc plus qu'un fichier qui pose problème, celui du tri.
Ensuite il y a 3 possibilités pour le tri :
- un fichier php qui envoie une requête à ta base de données et récupère tout une table de données qui est envoyée au client puis le javascript fait le tri et l'affiche. (peu probable)
- un fichier javascript qui envoie une requête de tri à un fichier php, ce dernier envoie une requête à ta base de données pour récupérer uniquement les données répondant aux critères de tri, le fichier javascript "écoute" la réponse du fichier php et affiche le résultat du tri. (c'est ce qui se passe si ta page n'est pas chargée de nouveau après avoir demandé le tri)
- un fichier php qui envoie une requête de tri à ta base de données et récupère uniquement les données triées puis les affiche. (fort probable si ta page est chargée de nouveau après la demande de tri)
 
 
Bref à moins d'une aberration il y a un fichier php qui se cache derrière le tri.

n°2203416
nullosdu59
L'hiver vient!
Posté le 18-09-2013 à 15:48:00  profilanswer
 

J'ai enfin trouvé grâce au conseil précédent. Le bout de code se trouve dans mon homepage.php. Ca fonctionne désormais nickel. Merci à tous et surtout à maybeeijornot.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Un select identique qui ne fonctionne pas

 

Sujets relatifs
[C] Bout de code fonctionne avec gdb mais pas en vrai [Résolu]shell_exec ne fonctionne pas
Multi select détection smart phoneSELECT tous les n enregitrements d'une table
Comment fonctionne les ban sur HFRfonction checkdnsrr ne fonctionne pas
utilisation de select() / fd_set() et autres joyeusetés sous linuxAide pour faire suivre un select case sur plusieurs cellules
Select + rand uniquePetit htaccess de 3 lignes qui ne fonctionne pas
Plus de sujets relatifs à : Un select identique qui ne fonctionne pas


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR