Formulaire recherche sur page cible...

Fermé
JCH_TERROIRS - 19 août 2020 à 11:25
JCH_TERROIRS Messages postés 2 Date d'inscription mercredi 19 août 2020 Statut Membre Dernière intervention 19 août 2020 - 19 août 2020 à 15:10
Bonjour,
J'aurais besoin de créer un formulaire de recherche prenant pour cible une simple liste de "prénoms" et "noms".
Explication :
Nous sommes une petite maison d'édition associative. Nous allons prochainement sortir un livre sur les écoles dans plusieurs communes d'une région précise. Ce livre cite quelques cinq-cents noms d'élèves...
Le but du formulaire est donc en deux questions de découvrir si son nom - donc sa photo de classe, ses anciens profs... se trouvent cités dans le livre en question.
Nous aimerions ainsi atteindre un lectorat un peu plus étendu.

Le Formulaire se déclinerait ainsi :
> Quel est votre Nom de famille ?
>> Si réponse négative = formule d'abandon.
>>> Si réponse positive
>>>> Quel est votre prénom ?
>>>>> Si réponse négative = formule d'abandon.
>>>>>> Si réponse positive
>>>>>>> Bravo !
>>>>>>>>> Lien vers Page promotionnelle de vente du livre.

Que me conseilleriez-vous ?
Il me semble qu'un simple formlaire de recherche (search) est insuffisant...
En revanche, je ne sais pas si un ensemble en PHP est utile pour si peu !?

Merci si quelqu'un peut répondre à cette question.
Bonne journée

Cordialement


>

3 réponses

jordane45 Messages postés 38300 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 novembre 2024 4 704
19 août 2020 à 11:38
Bonjour,

Tu parles de formulaire de recherche... mais sans avoir indiqué sur quoi tu veux le mettre ni quel langage ( tu as choisi le forum "programmation" sans spécifier le sous-forum adapté...)

Après, tu parles rapidement de php.... je peux donc en déduire que tu veux faire ce formulaire sur une page web.

Déjà, le formulaire lui même qui sera du html. (mais le html ne te servira qu'à afficher les différents champs de saisie... rien d'autre)

ensuite, pour "traiter" le formulaire tu dois utiliser
Soit du Javascript ( mais tous les noms seront alors disponibles dans le code source.... )
Soit un langage "serveur" ( comme du python, java, php ... ) le plus courant étant le php.

Soit, vu que tu veux faire un formulaire en "étapes" .. un mélange javascript + php via de l'ajax.






0
JCH_TERROIRS Messages postés 2 Date d'inscription mercredi 19 août 2020 Statut Membre Dernière intervention 19 août 2020
19 août 2020 à 14:06
Bonjour,
Effectivement, je n'ai peut-être pas bien ciblé ma question...
Pour être un peu plus précis, il s'agît de poser un formulaire sur ce site :
https://www.terroirs77.fr/
Ce site fonctionne avec un Module de "CMS Made Simple"...
Donc possibilité de PHP, me semble-t-il.
Merci pour ta réponse...
Le JavaScript avec transparence dans le code source ne me paraît pas judicieux.
Donc, le php semble la bonne direction.
Ce langage php n'étant pas "mon truc", est-ce possible de trouver des exemples de codes que je pourrais "aménager" selon mes besoins ?

Merci
0
jordane45 Messages postés 38300 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 novembre 2024 4 704
19 août 2020 à 14:53
Des exemples.. il y en a .. mais qui correspondront exactement à ta demande... peu de chance !

Pour faire ce que tu veux, ça va être à coup de IF/ESLE

Et pour stocker les données... soit tu passes par une BDD (ça serait plus simple en utilisant des requêtes sql... )

soit tu peux stocker les infos dans des array
un truc du genre

<?php


function searcharray($value, $key, $array) {
   $res = array();
   foreach ($array as $k => $val) {
       if (strtoupper($val[$key]) == strtoupper(trim($value))) {
           $res[] = $k;
       }
   }
   return $res;
}


// on créé le tableau 
$userdb=Array();
$userdb[] =  Array  (  "nom" => 'Shush',       "prenom" => 'Sarah'   ,"url"=>"http.../sarah"  );
$userdb[] =  Array  (  "nom" => 'Pop',       "prenom" => 'Xavier'   ,"url"=>"http.../xavier"  );
$userdb[] =  Array  (  "nom" => 'Pop',       "prenom" => 'Titi'   ,"url"=>"http.../titi"  );



$nomcherche = !empty($_POST['nom']) ? $_POST['nom'] : NULL;
$prenomcherche = !empty($_POST['prenom']) ? $_POST['prenom'] : NULL;
if($nomcherche) {
 
  $nomTrouve = searcharray($nomcherche, "nom", $userdb) ; 
  if(!empty($nomTrouve)  ){
    // le nom a été trouvé
    $arrNoms = array();   
    foreach($nomTrouve as $N){
      $arrNoms[] = $userdb[$N]; 
    }
    
    
     if($prenomcherche) {
        $prenomTrouve = searcharray($prenomcherche, "prenom", $arrNoms) ;       
        if(!empty($prenomTrouve)  ){
          // le prenom a été trouvé
           $arrPreNoms = array();   
            foreach($prenomTrouve as $N){
              $arrPreNoms[] = $arrNoms[$N]; 
            } 
            
           echo " Liste des personnes ayant le nom et le prénom cherché : <br>";
           print_r($arrPreNoms);
           
           
          
        }else{
          echo " Prénom introuvable ! ";
        }
      }    
  }else{
    echo " Nom introuvable ! ";
  }
}

?>
<html>
<head>
  <title>TEST</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  

</head>
<body>
  <form name="search" method="post" action="">
    <label>Nom</label>
    <input type="text" name="nom" value="<?php echo (!empty($nomcherche) ) ? $nomcherche : ""; ?>">
    <?php
      if(!empty($arrNoms)){
        echo "<label>Prénom</label>";
        echo "<input type='text' name='prenom' value='".  $prenomcherche  ."' >";
      }
    ?>
    <input type="submit" value="rechercher">
  </form>

</body>
</html>





0
JCH_TERROIRS Messages postés 2 Date d'inscription mercredi 19 août 2020 Statut Membre Dernière intervention 19 août 2020
19 août 2020 à 15:10
Merci pour cette réponse...

Je vais essayer de construire ces pages avec ce que tu m'envoies.
C'est très sympathique d'avoir répondu aussi promptement et en te donnant la peine de coder avec les questions que j'envisageais...
Je ne vais certainement pas aller aussi vite pour construire ces pages (d'autant que je ne m'occupe plutôt que de la mise en page du livre concerné)... Néanmoins, je vais essayer de mettre ton "aide" en pratique... Je pense avoir compris pour l'essentiel. Je ne manquerai pas de revenir sur ce post pour faire part de mes résultats.
Encore merci pour cette super piste.
à bientôt
0