2009-11-25 8 views
0

Je travaille en PHP (avec Symfony Framework) et je veux créer une recherche basée sur plusieurs valeurs sélectionnées à partir de l'élément de sélection multiple, ie il y aura plusieurs éléments de liste déroulante de sélection pour les pays, villes, âge etc. et les valeurs qu'ils contiennent vont interroger une table de données et donner la sortie de recherche désirée. (toutes les valeurs ne sont pas obligatoires, fonctionneront avec au moins une valeur). l'idée fera aussi ..Pour créer une recherche, avec des valeurs provenant d'un élément de sélection multiple?

Répondre

0

J'utilise Symfony comme cadre, donc mon code va comme ceci,

En action,

$values=$this->form->getValues(); 
$nation=$values['nation']; 
$township=$values['township']; 
$job=$values['job']; 
$programming_language_known=$values['programming_language_known']; 
if($nation != null || $township != null || $job != null || $programming_language_known != null){ 
//calling the function 
$this->search_data=Jobs::jobSearch(...parameter's here...); 
}else{ // search_data = null } 

dans le modèle

public static function jobSearch($nation=null, $township=null, $job=null, $programming_language=null) 
{ 
    $c=new Criteria(); 
    if($nation != null) 
    { 
     $c->addAnd(JobsPeer::NATION,$nation); 
    } 
    if($township != null) 
    { 
     $c->addAnd(JobsPeer::TOWNSHIP,$township); 
    } 
    if($job != null) 
    { 
     $c->addAnd(JobsPeer::JOB,$job); 
    } 
    if($programming_language != null) 
    { 
     $c->addAnd(JobsPeer::LANGUAGE,$programming_language); 
    } 
    $jobs=JobsPeer::doSelect($c); 
    return $jobs; 
} 

Il fonctionne pour l'instant mais je ne sais pas c'est une bonne logique ou non ....