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

PHP & Base de données Discussion :

Afficher le résultat d'une auto complétion dans un tableau


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 39
    Points : 35
    Points
    35
    Par défaut Afficher le résultat d'une auto complétion dans un tableau
    Bonsoir à tous,

    J'ai un formulaire qui me liste des contacts. J'utilise l'autocomplétation. En gros, lorsque je tape par exemple : Mo, le champ Texte m'affiche tous les noms etprénom (dans une infobulle) qui contiennent Mo pour faciliter la saisie.
    Jusque là, je n'ai pas de problème par requête SQL s'effectue bien...

    Le souci est que je voudrai en dessous de mon formulaire, un tableau qui s'affiche avec plus de détail : Nom, prénom, adresse mail, etc... en fonction de ma saisie dans mon champs texte.

    Je pense que mon souci vient du deuxième fichier : rpc.php

    Si quelqu'un pouvait me donner un tuyau... Merci par avance.

    Fichier : index.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
    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
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
     
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Rerchercher un contact</title>
     
    <script type="text/javascript" src="jquery-1.2.1.pack.js"></script>
    <script type="text/javascript">
     
     
    	function lookup(inputString) {
    		if(inputString.length == 0) {
    			// Hide the suggestion box.
    			$('#suggestions').hide();
    		} else {
    			$.post("rpc.php", {queryString: ""+inputString+""}, function(data){
    				if(data.length >0) {
    					$('#suggestions').show();
    					$('#autoSuggestionsList').html(data);
    				}
    			});
    		}
    	} // lookup
     
    	function fill(thisValue) {
    		$('#inputString').val(thisValue);
    		setTimeout("$('#suggestions').hide();", 200);
    	}
    </script>
     
    <style type="text/css">
    	body {
    		font-family: Helvetica;
    		font-size: 11px;
    		color: #000;
    	}
     
    	h3 {
    		margin: 0px;
    		padding: 0px;	
    	}
     
    	.suggestionsBox {
    		position: relative;
    		left: 30px;
    		margin: 10px 0px 0px 0px;
    		width: 200px;
    		background-color: #212427;
    		-moz-border-radius: 7px;
    		-webkit-border-radius: 7px;
    		border: 2px solid #000;	
    		color: #fff;
    	}
     
    	.suggestionList {
    		margin: 0px;
    		padding: 0px;
    	}
     
    	.suggestionList li {
     
    		margin: 0px 0px 3px 0px;
    		padding: 3px;
    		cursor: pointer;
    	}
     
    	.suggestionList li:hover {
    		background-color: #659CD8;
    	}
    </style>
     
    </head>
     
    <body>
     
     
    	<div>
    		<form id="search">
    			<div>
    				<label for="search-text">Rechercher un contact</label>
    				<br />
    				<input type="text" size="30" id="inputString" onkeyup="lookup(this.value);" onblur="fill();" />
    			</div>
     
    			<div class="suggestionsBox" id="suggestions" style="display: none;">
    				<img src="upArrow.png" style="position: relative; top: -12px; left: 30px;" alt="upArrow" />
    				<div class="suggestionList" id="autoSuggestionsList">
    					&nbsp;
    				</div>
    			</div>
    		</form>
    	</div>
     
    </body>
    </html>

    Fichier : rpc.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
    33
    34
    35
    36
    37
    38
    39
    40
    <?php
     
     
    	header('Content-Type: text/html; charset=ISO-8859-1');
    	$db = new mysqli('localhost', 'root' ,'', 'bdcontact');
     
    	if(!$db) {
     
    		echo 'Erreur : impossible de se connecter à la base';
    	} else {
     
    		if(isset($_POST['queryString'])) {
    			$queryString = $db->real_escape_string($_POST['queryString']);
     
     
     
    			if(strlen($queryString) >0) {
     
     
    				$query = $db->query("SELECT nom,prenom FROM tadherents WHERE CONCAT(nom,' ',PRENOM) LIKE '%$queryString%' LIMIT 10");
     
     
    				if($query) {
     
    					while ($result = $query ->fetch_object()) {
     
    	         			echo '<li onClick="fill(\''.$result->nom." ".$result->prenom.'\');">'.$result->nom.' '.$result->prenom.'</li>';		
     
    					}
    				} else {
    					echo 'problème de requête';
    				}
    			} else {
     
    			} 
    		} else {
    			echo 'erreur';
    		}
    	}
    ?>

  2. #2
    Membre confirmé Avatar de zulad
    Homme Profil pro
    creatif
    Inscrit en
    Juin 2007
    Messages
    713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : creatif

    Informations forums :
    Inscription : Juin 2007
    Messages : 713
    Points : 519
    Points
    519
    Par défaut
    C'est la galère de gérer l'autocomplétion coté serveur. Le mieux c'est d'ajaxifier ça en mettant sur la page un md5 sur un champ hidden, qui te permet d'accéder toujours au compte utilisateur. Tu aura beaucoup moins de code en plus.
    Aucun de nous n'est seul, Même l'air que nous expirons est inspirés par d'autres...

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Italie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 271
    Points : 491
    Points
    491
    Par défaut
    Au fur et a mesure que l'utilisateur saisie un contact, tu lui propose une liste de nom, et tu voudrai en dessous du formulaire, un tableau qui s'affiche avec plus de détail : Nom, prénom, adresse mail, etc... en fonction de ma saisie dans mon champs texte. mais si la saisie n'est pas complète, que doit t-on afficher dans le tableau? La même liste de proposition en plus détaillée?

  4. #4
    Membre confirmé Avatar de zulad
    Homme Profil pro
    creatif
    Inscrit en
    Juin 2007
    Messages
    713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : creatif

    Informations forums :
    Inscription : Juin 2007
    Messages : 713
    Points : 519
    Points
    519
    Par défaut
    Ideallement, ce que font les sites du genre, ils n'affichent le detail que quand l'id de l'utilisateur est identifié. Je pense que c'est la meilleurs réponse que je peux faire à ta question fab256
    Aucun de nous n'est seul, Même l'air que nous expirons est inspirés par d'autres...

Discussions similaires

  1. Réponses: 9
    Dernier message: 28/11/2014, 12h13
  2. Réponses: 1
    Dernier message: 13/10/2012, 23h49
  3. Réponses: 13
    Dernier message: 26/07/2007, 08h50
  4. Réponses: 6
    Dernier message: 02/10/2006, 12h13

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