probleme de requete de selection d'offre d'emploi

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : probleme de requete de selection d'offre d'emploi

Re: probleme de requete de selection d'offre d'emploi

par yoni862 » 22 juin 2018, 01:11

Ah ok. Mais justement j'aimerai ajouter du code pour pouvoir effectuer une recherche par le type de poste également, mais je ne sais pas comment faire là, je viens de récupérer ce code par l'ancien développeur qui s'est sauvé sans Doc...merci pour ton aide.

Re: probleme de requete de selection d'offre d'emploi

par @rthur » 21 juin 2018, 23:47

Lorsque je tape un type de poste, il ne me trouve rien tant que je n'ai pas entrer un nom de ville.... Alors que lorsque je recherche seulement avec une ville ca fonctionne...
Bah c'est exactement ce que fait ton code si je comprends bien, tu n'as que des if() qui attendent la ville pour faire un taritement, donc ça me semble plutôt normal.

probleme de requete de selection d'offre d'emploi

par yoni862 » 21 juin 2018, 21:55

J'ai un probleme avec mon site d'offre d'emploi. J'ai seulement deux champs de disponible pour les utilisateurs (type de poste et ville).

Lorsque je tape un type de poste, il ne me trouve rien tant que je n'ai pas entrer un nom de ville.... Alors que lorsque je recherche seulement avec une ville ca fonctionne...

Merci pour votre aide, voici mon code ;
<?php
$regions = searchCities();
$jobs;
$poste = !empty($_POST['poste']) ? $_POST['poste'] : !empty($_GET['p']) ? $_GET['p'] : '';
//$poste_no_accent = strtoupper( transliterator_transliterate('Any-Latin; Latin-ASCII; [\u0080-\u7fff] remove', $poste) );
$zipCode = strtoupper(str_replace("_", " ", !empty($_POST['zipCode']) ? $_POST['zipCode'] : !empty($_GET['z']) ? $_GET['z'] : ''));
$distanceRadius = !empty($_POST['distanceRadius']) ? $_POST['distanceRadius'] : !empty($_GET['r']) ? $_GET['r'] : '';

if( !empty($_GET['v'])){
if(isset($_POST['ville']) || isset($_GET['v'])) {
	$ville = !empty($_POST['ville']) ? $_POST['ville'] : explode(" ", $_GET['v']);
	if (count($ville) === 1) {
		$villes = api_get_cities();

		foreach($villes as $v){
			if($v->getCityID() == $ville[0]){
				$villeObj = $v;
				break;
			}
		}
	}
	if ($isPageJobOffers) {
		$jobs = searchJobs($poste, $ville, ($currentPage - 1) * $pageMax, $pageMax);
	}
	$jobsCount = getCountJobs($poste, $ville);
	//if ($isPageJobOffers) {
	//	$jobs = searchJobs($poste_no_accent, $ville, ($currentPage - 1) * $pageMax, $pageMax);
	//}
	//$jobsCount = getCountJobs($poste_no_accent, $ville);
	
}
}


if ($zipCode && $distanceRadius) {
   // Set distance radius with a default value (5km) if not set.
   if (!$distanceRadius) {
      $distanceRadius = '5';
   }
   
   // Unused; Maybe useful one day if we have a ton of jobs to go through (in ten of thousands).
	//$jobsAllPage = searchJobsIds($poste_no_accent, $ville);
   $emptyVille;
   $jobsAllPage = searchJobs($poste, $emptyVille);
   //$jobsAllPage = searchJobs($poste_no_accent, $emptyVille);

   $finder = new PostalCodeFinder(null, $zipCode, $distanceRadius);
   $postalCodes = $finder->find();
   $jobs = array();

	foreach ($jobsAllPage as $index => $job) {
      foreach ($postalCodes as $index2 => $pc) {
         if ($pc->code == substr($job->getJobPostalCode(), 0, 3)) {
            $job->distance = $pc->distance;
            array_push($jobs, $job);
         }
      }
	}
	$jobsCount = count($jobs);
}

$suggest = '';
if (!empty($poste)) {
   /* $pspell_link = pspell_new(ICL_LANGUAGE_CODE, 'canadian', '', 'UTF-8');	//*** Removed for now because it doesn't work

    if (!pspell_check($pspell_link, $poste)) {
        $list = pspell_suggest($pspell_link, $poste);
        if (count($list) > 0) {
            $suggest = reset($list);
        }
    }*/
}
$monthArr = include(get_theme_root() . '/hunt/inc/tools/months.php');
$pageIds = include(get_theme_root() . '/hunt/inc/tools/page_ids.php');

$cities = api_search_cities('');
$citiesLang = array();
foreach ($cities as $c) {
    $province = $c->getCityCode();
    $matches = array();
    preg_match("/[0-9]+/", $province, $matches);
    if (count($matches) == 0) {
        continue;
    }
    $province = preg_replace("/[0-9]+/", "", $province);
    $citiesLang[$c->getCityID()] = (strcmp(strtoupper($province), 'QC')===0?'fr':'en');
}
?>

<form id="frm-job-search" action="<?php echo get_permalink(icl_object_id($pageIds['job-offers'], 'page'))?>" class="form-inline" method="get">
			<div class="two columns">
				<label class="label-job-search" for="poste"><?php echo __('Emploi recherché');?></label>
			</div>
			<div class="three columns">
				<input  type="text" name="p" id="poste" class="input-recherche input-job-search inputSearch" value="<?php
				echo !empty($poste) ? $poste : '';
				?>" placeholder="<?php echo __("Saisir un mot clé");?>">
			</div>
			<div class="three columns">
				<input class="inputSearch input-job-search" type="text" id="ville-complete" value="<?php echo (!empty($villeObj)?$villeObj->getCityName(ICL_LANGUAGE_CODE):''); ?>" placeholder="<?php echo __("Saisir un lieu");?>" />
			</div>
			<input type="hidden" name="v" id="ville-value" value="<?php echo implode('0',$ville); ?>" />
				<div id = "mydiv_ii">
					<input  type="hidden" style="width:45%!important;" name="z" id="zipCode" class="input-recherche input-job-search inputSearch" value="<?php echo !empty($zipCode) ? $zipCode : ''; ?>" maxlength="6"
					placeholder="<?php echo ICL_LANGUAGE_CODE=='fr'?'Saisir votre code postal':'Enter your postal code';?>">
					<input style="width:30%!important;" type="hidden" name="r" id="distanceRadius" class="input-recherche input-job-search inputSearch" value="<?php echo !empty($distanceRadius) ? $distanceRadius : ''; ?>" maxlength="2"
					placeholder="<?php echo ICL_LANGUAGE_CODE=='fr'?'Distance (km)':'Distance (km)';?>">
				</div> 
			<div class="three columns">
				<input type="submit" value="<?php echo __('Afficher les postes');?>" class="button btn-primary input-job-search" style="margin-top:5px; ">
			</div>
		</form>