Problè de sélection sur mon site d'emploi

Fermé
yoni862 Messages postés 2 Date d'inscription mardi 19 juin 2018 Statut Membre Dernière intervention 21 juin 2018 - Modifié le 21 juin 2018 à 21:57
jordane45 Messages postés 38415 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 11 février 2025 - 27 juin 2018 à 15:34
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 ;

$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>


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
A voir également:

1 réponse

Hello,

Je me demande comment ton script arrive à fonctionner quand je vois $_POST et $_GET dans un formulaire envoyé en get.

Ensuite, pourquoi $_POST['poste'] et $_GET['p'] ?

Pourquoi ne pas donner à tes input un id et un name similaire ?

Pourquoi $_POST['ville'] ? il n'existe pas...
Il y a trop d'incohérences dans ton code.

Edit : Transmet ton formulaire en POST, c'est préférable.
0
jordane45 Messages postés 38415 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 11 février 2025 4 734
27 juin 2018 à 15:34
Bonjour,
En complément de la (très juste) réponse de Fred, je t'invite vivement à commencer par appliquer ceci :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
0