Page 1 sur 1

problème de recherche multi-critères

Publié : 22 oct. 2008, 09:57
par jaws06
bonjours

J’ai un petit problème avec un moteur de recherches multi-critères.
J’ai trois zones avec des présélections et un bouton recherché. Je choisi ce qui m’intéresse dans les zones et lorsque je clique sur recherché il ne prend en compte qu’une seule zone ! c’est normal docteur ?

Je vous mets le code :

{$startform}

<label for="{$search_actionid1}searchinput1">{$searchtext1}</label>:&nbsp;

<select id="{$search_actionid1}searchinput1" name="{$search_actionid1}searchinput1" {$hogan}/><option value="">bien</option><option value="appartement">appartement</option><option value="villa">villa</option><option value="terrain">terrain</option></select>

<select id="{$search_actionid}searchinput" name="{$search_actionid}searchinput" {$hogan}/><option value="">ville</option><option value="antibes">antibes</option><option value="nice">nice</option><option value="cannes">cannes</option></select>

<select id="{$search_actionid}searchinput" name="{$search_actionid}searchinput" {$hogan}/><option value="">nombre de pièces</option><option value="T1">T1</option><option value="T2">T2</option><option value="T3">T3</option></select>

<input name="submit" value="{$submittext}" type="submit" />
{if isset($hidden)}{$hidden}{/if}

{$endform}


merci d'avance


Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3

Re: problème de recherche multi-critères

Publié : 22 oct. 2008, 10:01
par calimo
Hello !

J'espère que ce n'est pas le code reçu par Firefox ! Quel langage utilises-tu ?
jaws06 a écrit :lorsque je clique sur recherché il ne prend en compte qu’une seule zone
Qui ça "il" ? Firefox ? Ton programme ?

Publié : 22 oct. 2008, 10:37
par jaws06
bonjour Calimo

en fait c'est une zone de recherche pour un cms (made in simple).
donc la zone de recherche est mise en place, mais le bouton "rechercher" ne prends en compte qu'une zone sur trois

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3

Publié : 22 oct. 2008, 10:41
par Asumbaa
Salut,

Peux-tu nous indiquer le code HTML correspondant au formulaire ?
A vue de nez je dirais que tes champs ont le même nom, mais c'est pas évident avec la syntaxe de ton CMS.

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0

Publié : 22 oct. 2008, 11:34
par Invité
alors en fait il s'agit d'un module "search" propre au cms que j'ai modifié.
je vous mets l'explication que l'on peut avoir dans l'aide du cms sur ce module :


Que fait ce module ?

Le module de recherche (Search) permet d'effectuer des recherches dans le contenu du "noyau" du site, ainsi que dans certains modules enregistrés. Vous donnez un ou deux mots et le module vous renvoie les résultats correspondants et pertinents.
Comment l'utiliser ?

La façon la plus simple est d'utiliser la balise {search}. Ceci est une balise wrapper (qui englobe le module dans une balise pour en simplifier la syntaxe). Ceci va insérer le module dans votre gabarit ou votre page à l'endroit désiré, et afficher le formulaire de recherche. Le code ressemble à ceci : {search}
Comment empêcher certains contenus d'être indexés

Le module Recherche (Search) ne cherchera pas dans les page inactives. Cependant, à l'occasion, si vous utilisez le module CustomContent, ou d'autres logiques Smarty pour afficher des contenus différents à différents utilisateurs, il est conseillé d'empêcher l'indexation de toute la page, même si elle est active. Pour cela, ajoutez la balise suivante n'importe où dans la page < !-- pageAttribute: NotSearchable -- >. Quand le module de recherche verra ce code dans la page, il n'indexera rien de ce qui se trouve sur cette page.

La balise < !-- pageAttribute: NotSearchable -- > peut également être placée dans un gabarit. Si c'est le cas, aucune des pages utilisant ce gabarit ne sera indexée. Ces pages seront réindexées si la balise est supprimée.
Paramètres

* (optional) count="null" - Utilisé avec l'action 'keywords', ce paramètre limitera la recherche au nombre indiqué de mots
* (optional) pageid="null" - Applicable seulement avec l'action 'keywords', ce paramètre peut être utilisé pour spécifier une page différente (pageid) d'affichage des résultats de la recherche
* (optional) action="default" - Spécifie le mode de recherche du module. Les valeurs acceptées sont 'default', et 'keywords'. L'action 'keywords' peut être utilisée pour générer une liste de mots (séparés par une virgule) utilisables dans le meta tag 'keywords'.
* (optional) submit="Envoyer" - Texte à placer dans le bouton 'OK'
* (optional) searchtext="null" - Texte à placer dans le champ de recherche
* (optional) resultpage="null" - Page pour l'affichage des résultats. Ceci peut être soit un alias de page, soit l'ID de la page. Utilisé pour permettre aux résultats de recherche d'être affichés dans un gabarit différent du formulaire de recherche
* (optional) modules="null" - Limite les résultats de la recherche aux valeurs indexées dans la liste des modules spécifiés (séparés par une virgule)
* (optional) passthru_*="null" - Transmet des paramètres nommés à des modules spécifiques. Le format de ces paramètres est : "passtru_MODULENAME_PARAMNAME='value'" Exemple : passthru_News_detailpage='newsdetails'"
* (optional) inline="false" - Si 'true', le résultat de la recherche remplacera le contenu originel de la balise {search} dans le contenu du bloc originel. Utilisez ce paramètre si votre gabarit contient plusieurs blocs de contenu, et que vous ne désirez pas que l'affichage de la recherche remplace le contenu du bloc par défaut
* (optional) lang="en_US" - Paramètre utilisé pour spécifier dans quelle langue afficher le module dans la partie publique. Ce paramètre n'est pas supporté ou utile pour tous les modules.



Le gabarit de recherche :

{$startform}

<label for="{$search_actionid1}searchinput1">{$searchtext1}</label>&nbsp;

<select id="{$search_actionid1}searchinput1" name="{$search_actionid1}searchinput1" {$hogan}/><option value="">bien</option><option value="appartement">appartement</option><option value="villa">villa</option><option value="terrain">terrain</option></select>

<select id="{$search_actionid}searchinput" name="{$search_actionid}searchinput" {$hogan}/><option value="">ville</option><option value="antibes">antibes</option><option value="nice">nice</option><option value="cannes">cannes</option></select>

<select id="{$search_actionid}searchinput" name="{$search_actionid}searchinput" {$hogan}/><option value="">nombre de pièces</option><option value="T1">T1</option><option value="T2">T2</option><option value="T3">T3</option></select>

<input name="submit" value="{$submittext}" type="submit" />
{if isset($hidden)}{$hidden}{/if}

{$endform}


le gabarit de résultat :

<h3>{$searchresultsfor} "{$phrase}"</h3>
{if $itemcount > 0}
<ul>
{foreach from=$results item=entry}
<li>{$entry->title} - <a href="{$entry->url}">{$entry->urltxt}</a> ({$entry->weight}%)</li>
{*
You can also instantiate custom behaviour on a module by module basis by looking at
the $entry->module and $entry->modulerecord fields in $entry
ie: {if $entry->module == 'News'}{News action='detail' article_id=$entry->modulerecord detailpage='News'}
*}
{/foreach}
</ul>

<p>{$timetaken}: {$timetook}</p>
{else}
<p><strong>{$noresultsfound}</strong></p>
{/if}


Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3

Publié : 22 oct. 2008, 11:36
par calimo
En fait ce qui serait utile c'est le code HTML généré par ton CMS à partir de ce gabarit. Cela permettra probablement de voir si le souci vient de Firefox (peu probable) ou de ton code. :wink:

PS : ne mets pas en gras le code, mais utilise les balises

Code : Tout sélectionner

 :wink:

Publié : 22 oct. 2008, 13:06
par jaws06
le code html généré par le module "search" est ce lui -çi :

Code : Tout sélectionner

  <label for="searchinput1"></label>&nbsp;
    
    <select id="searchinput1" name="searchinput1" onfocus="if(this.value==this.defaultValue) this.value='';" onblur="if(this.value=='') this.value=this.defaultValue;"/><option value="">bien</option><option value="appartement">appartement</option><option value="villa">villa</option><option value="terrain">terrain</option></select>
    
    <select id="cntnt01searchinput" name="cntnt01searchinput" onfocus="if(this.value==this.defaultValue) this.value='';" onblur="if(this.value=='') this.value=this.defaultValue;"/><option value="">ville</option><option value="antibes">antibes</option><option value="nice">nice</option><option value="cannes">cannes</option></select>

    
     <select id="cntnt01searchinput" name="cntnt01searchinput" onfocus="if(this.value==this.defaultValue) this.value='';" onblur="if(this.value=='') this.value=this.defaultValue;"/><option value="">nombre de pièces</option><option value="T1">T1</option><option value="T2">T2</option><option value="T3">T3</option></select>
    
    <input name="submit" value="Envoyer" type="submit" />
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3

Publié : 22 oct. 2008, 13:54
par calimo
jaws06 a écrit :

Code : Tout sélectionner

    <select id="cntnt01searchinput" name="cntnt01searchinput" 
[...]
     <select id="cntnt01searchinput" name="cntnt01searchinput"
C'est bien ce qu'on pensait : les deux <select> ont le même nom (et identifiant). Je ne sais pas comment cela est géré par Firefox sur un select, mais probablement pas de la manière dont tu t'y attends... essaye en leur donnant un nom différent !