Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/07/2011, 18h50   #1
Candidat au titre de Membre du Club
 
Homme Stéphane
Inscription : mars 2011
Messages : 39
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France

Informations forums :
Inscription : mars 2011
Messages : 39
Points : 13
Points : 13
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 :
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 :
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';
		}
	}
?>
smotte761 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 12h55   #2
Membre confirmé
 
Avatar de zulad
 
Inscription : juin 2007
Messages : 500
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 500
Points : 289
Points : 289
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.
__________________
Il y a trois grandes catégories d'individus : Les S:sensibles / Les P:penseurs / Les A:agités (Tous sont des animaux)
zulad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 13h37   #3
Membre confirmé
 
Homme
Développeur informatique
Inscription : avril 2011
Messages : 196
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Italie

Informations professionnelles :
Activité : Développeur informatique
Secteur : Transports

Informations forums :
Inscription : avril 2011
Messages : 196
Points : 298
Points : 298
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?
fab256 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 13h41   #4
Membre confirmé
 
Avatar de zulad
 
Inscription : juin 2007
Messages : 500
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 500
Points : 289
Points : 289
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
__________________
Il y a trois grandes catégories d'individus : Les S:sensibles / Les P:penseurs / Les A:agités (Tous sont des animaux)
zulad est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h06.


 
 
 
 
Partenaires

Hébergement Web