IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Comment récupérer l’id d’un élément envoyé par formulaire avec autocompletion ?


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Comment récupérer l’id d’un élément envoyé par formulaire avec autocompletion ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    <article>
    	<div id="principal">
    		<div id="titre_principal">Inscription</div>
    			<form action="" method="post">
    				<table width="80%" align="center">
    					<tr>
    						<td align="center" colspan="2">
    <?php
    if(!empty($_POST['inscription'])) {extract($_POST);	 
    	echo 'ligue  ='.$ligue.' assoc = '.$association.' nom = '.$nom.' prenom = '.$prenom.' joueur = '.$joueur; 
    	echo Inscription::inscrire($nom,$prenom, $ligue, $association, $email, $passeUn, $passeDe);
    }
    ?>
    						</td>
    					</tr>							
    					<tr><td></td>
    						<td><?php
    $co_bdd = new PDO('mysql:host=localhost;dbname=base', 'root', '');
    $liste = $co_bdd->query('SELECT * FROM table_ligues');
    echo '<select name="ligue" id="ligue_select" size="1">
    	<option value="0">Votre ligue ?</option>';
    while($data = $liste->fetch())
    {echo '<option value=';echo $data['Id_ligue'];echo '>';
    	echo $data['Nom_ligue'];
    	echo '</option> ';
    }
    echo '</select>';
    $co_bdd = new PDO('mysql:host=localhost;dbname=base', 'root', '');
    $liste = $co_bdd->query('SELECT * FROM table_assos');
    echo '<select name="association" id="asso_select" size="1">
    	<option value="0">Votre club ?</option>';
    while($data = $liste->fetch())
    {echo '<option value=';echo $data['Id_asso'];echo '>';
    	echo $data['Nom_asso'];
    	echo '</option> ';
    }
    echo '</select>';
    ?>
    						</td>
    					</tr>							
    					<tr><td>Entrer votre nom</td><td><?php include('autocomplete.php'); ?></td>
    					</tr>
    					<tr>
    						<td align="center">Votre prénom</td>	
    						<td><input type="text" name="prenom" placeholder="prenom" size="25" /></td>
    					</tr>
    					<tr>
    						<td>Votre email : </td>
    						<td>
    							<input type="text" name="email" placeholder="Votre email" size="25" /></td>
    					</tr>
    					<tr>
    						<td>Saisir un Mot de Passe : </td>
    						<td><input type="text" name="passeUn" placeholder="Saisir un mot de passe" size="25" /></td>
    					</tr>
    					<tr>
    						<td>Resaisir le Mot de Passe :</td>
    						<td><input type="text" name="passeDe" placeholder="Resaisir le Mot de Passe"size="25" /></td>
    					</tr>
    					<tr>
    						<td>
    							<input type="submit" value="Valider Inscription" name="inscription" class="input" />    <br />
    						</td>
    					</tr>
    				</table>
    			</form>
    		</div>	
    </article>
    autocomplete.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    <link type="text/css" rel="stylesheet" href="http://dev.chez-syl.fr/autocomplete/css/jquery.autocomplete.css" /> 
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script> 
    <script type="text/javascript" src="http://dev.chez-syl.fr/autocomplete/js/jquery.autocomplete.js"></script> 
     
     
    <script type="text/javascript">$(document).ready(function() { 
    $('#langages').autocomplete('./autocomplete.php');
    });</script>
     
    Entrez votre nom : <input type="text" id="langages"  placeholder="nom" size="25" />
     
    <?php
    // si on reçoit une donnée
    if(isset($_GET['q'])) {
        $q = htmlentities($_GET['q']); // protection
     
        // connexion à la base de données
        try {
            $bdd = new PDO('mysql:host=localhost;dbname=base', 'root', '');
        } catch(Exception $e) {
            exit('Impossible de se connecter à la base de données.');
        }
        // écriture de la requête
        $requete = "SELECT nom FROM table_membres WHERE nom LIKE '". $q ."%' LIMIT 0, 10000";
        // exécution de la requête
        $resultat = $bdd->query($requete) or die(print_r($bdd->errorInfo()));
        // affichage des résultats
        while($donnees = $resultat->fetch(PDO::FETCH_ASSOC)) {
            echo $donnees['nom'] ."\n";
        }
    }
    ?>

    Bonjour à tous,

    Petit appel à l’aide ! Je n’arrive désespérément pas à finaliser le projet sur lequel je suis en train de travailler. Je crée un site avec un espace membres et une base de données sur MySqL. Jusqu’ici, tout va bien…

    Sur mon site, il y a 2 cas de figure pour les nouveaux membres :
    - soit ils sont inconnus dans la base et ils doivent compléter le fichier d’inscription complet (mais ça, ça fonctionne déjà ! Ouf !)
    - soit leur nom est déjà dans ma base et j’aimerais dans ce cas qu’ils soient reconnus et enregistrés comme tels.

    Via le formulaire d’inscription, un nouveau membre complète le champ nom et lorsque celui-ci est déjà dans ma base, un système d’autocompletion lui propose de choisir son nom… Ca aussi, ça fonctionne.
    Mais à ce stade, je rencontre 3 difficultés :
    - Comment récupérer l’id du membre sélectionné ?
    - Comment traiter 2 membres ayant le même nom ?
    - Comment faire pour que seuls les joueurs de tel club sélectionné de telle ligue soient affichés ?

    Le formulaire d’inscription comprend les champs : nom, prénom, mail, mdp (+mdp pour vérif). Mais l’autocomplétion ne s’applique que pour le nom, pas le prénom.

    Et là, j’avoue que je coince. Alors si qqn avait une piste qui me permettrait de voir la lumière au bout du tunnel, ben…. ce serait cool !

    D’avance merci,
    Fabrice

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 76
    Points : 62
    Points
    62
    Par défaut
    Je t'avoue que tu te compliques un peu la tâche, c'est pour ça que partout ou tu t'inscris tu te log avec un numéro d'identifiant qui lui renvoie vers les coordonnées précises de la personne directement : nom, prénom, etc... De plus le jour ou tu auras des homonymes ton système va planter, par exemple que deviendra le 2è Jean Martin qui voudra s'inscrire si un premier est déjà inscrit ?

    Il y a une chose que je ne comprends pas : pourquoi quelqu'un qui est déjà dans la base doit s'inscrire ?

    Sinon le plus simple je pense est de partir sur un script de reconnaissance avant de faire l'inscription de manière à pouvoir compléter la fiche du membre une fois qu'il est reconnu.

    Sinon pour tenter de répondre à tes questions dans l'ordre
    - Comment récupérer l’id du membre sélectionné ? avec une recherche mysql du type SELECT * FROM table WHERE nom='MARTIN'
    - Comment traiter 2 membres ayant le même nom ? ben tu peux pas c'est bien pour ça qu'il faut passer par un identifiant unique -> on est tous des numéros
    - Comment faire pour que seuls les joueurs de tel club sélectionné de telle ligue soient affichés ? il faut déjà connaître les critères d'affichage du club : est ce que l'utilisateur choisit son club en le saisissant, est ce qu'il doit apparaitre automatiquement ? Si oui selon quels critères ? sinon là aussi une requête de type SELECT s'applique.

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Salut

    D'abord un grand merci de prendre le temps de me répondre. C'est vraiment très sympa

    Je pense que j'ai dû mal expliciter mon souci : je souhaite en fait faire un lien entre le nom de qqn qui s'inscrit et un enregistrement existant dans la base. J'ai en fait une assez volumineuse base de données de joueurs dans laquelle les classements et autres infos importantes pour moi sont déjà enregistrées. Ex : Mr Serge Machin veut utiliser mon site. Ce Serge Machin fait en fait déjà partie de la base, mais il lui faut un mail et un mot de passe pour accéder aux services du site. Je souhaite donc que lorsqu'il remplit le formulaire d'inscription, les champs Email et Mdp(hâché/salé) de la fiche 'Serge Machin' soient complétés, sans créer une nouvelle fiche (ou entrée).

    Vois-tu mieux ce que je cherche à obtenir ? Désolé d'avance si je ne suis pas encore très clair...

    A très vite j'espère !
    Fabrice

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Points : 1 101
    Points
    1 101
    Par défaut
    - Comment récupérer l’id du membre sélectionné ?
    Pour pouvoir récupéré l'id apartir du nom ce dernier doit être unique.
    - Comment faire pour que seuls les joueurs de tel club sélectionné de telle ligue soient affichés ?
    avec une requette SQL.
    Si j'ai bien compis.

    PS:

    J'ai vus dans ton code plusieur connexion sur la même base dans un fichier, laisse seulement une et il fera l'affaire

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Salut M4riachi,

    c'est très sympa de prendre un peu de temps pour moi !
    Comme je l'écrivais à shaiulud, je crois que je n'ai pas bien expliqué ce que je voulais. Je souhaite compléter une entrée dans une table avec les données de mon formulaire (ici, je veux récupérer un nom et un email et l'associer a un nom de ma bdd si celui ci existe déjà).

    Crois-tu que cela soit possible ?

Discussions similaires

  1. [Flex3] Récupérer une variable post envoyer par un formulaire html
    Par naoufel1986 dans le forum Flex
    Réponses: 1
    Dernier message: 20/08/2010, 21h52
  2. Réponses: 9
    Dernier message: 15/06/2008, 11h13
  3. Récupération d'ne liste envoyé par formulaire
    Par Leviathan_72 dans le forum Langage
    Réponses: 5
    Dernier message: 24/11/2005, 09h36
  4. Réponses: 2
    Dernier message: 30/11/2004, 02h36
  5. [XML] comment récupérer un arbre xml posté par http ?
    Par tomperso dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 02/07/2004, 10h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo