Accueil > > > ASSISTANT DE SAISIE SEMI-AUTOMATIQUE (GRE LIST)
ASSISTANT DE SAISIE SEMI-AUTOMATIQUE (GRE LIST)
Information sur la source
Description
Cette source est une excuse pour m'essayer à XMLHTTPREQUEST. A savoir que je n'ai rien inventé mais que je me suis basé sur l'excellent article présent sur http://www.webpasties.com/xmlHttpRequest/index.htm l. Je conseille à tous ceux qui veulent faire du XMLHTTPREQUEST de lire cet article! Je me demandais comment marche le système de saisie assistée du moteur de recherche de phpcs... alors voili voilà un code qui fait la même chose: lorsqu'on tape des mots, dès qu'il y a trois caractères, si il y a des mots commencant par ces trois caractères sont connus par la bd, des propositions sont faites. En cliquant sur "definition", on obtient... la définition! Je me suis basé sur une GRE List de 1162 mots pour m'essayer. Ce code a pour seul but de présenter XMLHTTPREQUEST.
Source
*************** LE FICHIER INDEX.PHP
<html>
<head>
<title>XMLHTTPREQUEST GRE WORDS QUERY</title>
<style type="text/css">
div.prop {
height: auto;
width: 150px;
//overflow: auto;
border: 1px solid #666;
background-color: #ccc;
padding: 8px;
font-size: 10px;
font-family:verdana;
font-weight: bold;
visibility:hidden;
}
input{
border-right : 1px solid #669;
border-top : 1px solid #669;
font-size : 10px;
border-left : 1px solid #669;
color : #000;
border-bottom : 1px solid #669;
font-family : verdana, arial, helvetica, sans-serif;
background-color : #f3f3f9;
}
</style>
<script type="text/javascript">
var isWorking = false; // est-ce que le canal est occupé
function getHTTPObject() {
var xmlhttp;
/*@cc_on
@if (@_jscript_version >= 5)
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
@else
xmlhttp = false;
@end @*/
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
xmlhttp = false;
}
}
return xmlhttp;
}
var http = getHTTPObject(); // on crée un objet HTTP
function treatquery(){ // la requête
if (!isWorking && http) {
ch = document.send.abr.value;
if (ch.length>2){
http.open("GET", "treat.php?abr=" + escape(ch), true);
http.onreadystatechange = handleHttpResponse;
isWorking = true;
http.send(null);
}
if ((ch.length<3) && (document.getElementById('res').style.visibility == 'visible'))
document.getElementById('res').style.visibility = 'hidden';
}
}
function handleHttpResponse() { // traitement de la demande
if (http.readyState == 4) {
if (http.responseText.indexOf('invalid') == -1) {
var xmlDocument = http.responseXML;
var res = xmlDocument.getElementsByTagName('name').item(0).firstChild.data;
var elements = res.split(";");
var result;
if (elements[0] != ''){
result = "<font color=\"darkblue\">Do you mean...</font><br />";
for (var i=0;i<elements.length;i++){
result = result + "<a style=\"text-decoration:none;color:red;\" href=\"javascript:setQuery('" + elements[i] + "');\">" + elements[i] + "</a><br />";
}
result = result + "<hr /><center><a href=\"http://www.noisy.ch\" style=\"text-decoration:none;color:darkgrey;\">pub ici</a></center>";
document.getElementById('res').innerHTML = result;
document.getElementById('res').style.visibility = 'visible';
}
else document.getElementById('res').style.visibility = 'hidden';
isWorking = false;
}
}
}
function setQuery(ch){
document.getElementById('abr').value = ch;
document.getElementById('res').style.visibility = 'hidden';
}
</script>
</head>
<body>
<form name="send" style="display:inline; position: relative;" action="" method="POST">
<div style="display:inline; position: relative;">
<input type="text" id="abr" name="abr" value="<?php echo $_POST['abr'];?>" style="width: 150px;font-family:verdana; font-size:8pt;color:darkblue;" onkeyup="treatquery();" />
<input type="submit" value="definition" style="font-family:verdana; font-size:8pt;" name="submit" />
<div id="res" style="background-color:white;position: absolute; top: 22px;left: 0px;" class="prop" onmousemove="this.style.visibility='visible';" onmouseout="this.style.visibility='hidden';">
</div>
</div>
</form>
<?php
if ((isset($_POST)) && ($_POST['abr']!='')){
include('config.php');
$q = 'SELECT definition FROM dico_gre WHERE name = \''.$_POST['abr'].'\';';
$r = mysql_query($q);
if (mysql_num_rows($r)>0){
$res = mysql_fetch_assoc($r);
$def= $res['definition'];
}
else $def = 'no definition known...';
echo '<br /><br /><font face="verdana" size="1" color="darkblue"><b>'.$_POST['abr'].'</b></font><font face="verdana" size="1" color="black">: '.$def.'</font>';
}
else echo '<br /><br /><font face="verdana" size="1" color="darkblue"><b> </b></font><font face="verdana" size="1" color="black"> </font>';
?>
</body>
</html>
*************** LE FICHIER TREAT.PHP
<?php
if ((isset($_GET)) && ($_GET['abr'] != '')){
include('config.php');
$abr = $_GET['abr'];
$q = 'SELECT name from dico_gre WHERE name LIKE \''.$abr.'%\'';
$r = mysql_query($q);
$return = '<?xml version="1.0" standalone="yes"?><result>';
if ((mysql_num_rows($r)>0)){
$name = '';
while ($rep=mysql_fetch_array($r)){
$name .= $rep['name'].';';
}
$return .= '<name>'.$name.'</name>';
}
if (mysql_num_rows($r)==0) $return .= '<name>;</name>';
$return .= '</result>';
header('Content-Type: text/xml');
echo $return;
}
?>
Conclusion
La base de donnée est
CREATE TABLE dico_gre (name VARCHAR(50) NOT NULL, definition TEXT NOT NULL);
INSERT INTO dico_gre VALUES ('abacus','frame with balls for calculating'); INSERT INTO dico_gre VALUES ('abate','to lessen to subside'); INSERT INTO dico_gre VALUES ('abdication','giving up control authority'); ...
La liste fait plus d'un mega (1162 entrées), donc je ne peux pas la mettre ici! Elle est PROVISOIREMENT disponible sur http://www.noisy.ch/xmlhttprequest/gre/gre.xls, sinon vous pouvez trouver des listes équivalentes via google.
Historique
- 04 août 2005 22:28:05 :
- Démo retirée pour pas devoir me battre contre des injections... une petite animation est disponible sur:
http://www.noisy.ch/xmlhttprequest/gre/demo.gif
- 05 août 2005 13:56:13 :
- Ajout d'un zip pour faire plaisir a MATHIS49 ;)
Le fichier xls ne contient que 90 lignes, la lettre 'a' en fait
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
saisie semi automatique [ par el_bassir ]
Bonjour;j'aimerai faiire un script dans ma page web permettant de faire la meme chose que la saisie semi automatique. en fait j'ai une zone de t
saisie semi automatique [ par zied86 ]
Salut , je cherche un script en php me permettant en tapant un lettre ou plus d'un mot enregistrer dans une base de donnée MYSQL de faire apparaître c
déclencher l'ouverture automatique d'une page [ par camufode ]
Je veux lancer l'ouverture automatique d'une page php,l'événement qui va déclencher l'ouverture est different des événements javascrit onload,onclick,
Ne pas faire attention aux majuscules lors d'une saisie [ par BlAzAk ]
Bonjour, Alors voila mon problème: J'ai fait un formulaire d'inscription sur mon site qui enregistre les données spécifiée dans une BDD SQL. Là tou
Formualire saisie d'URL vidéo : comment faire ? [ par aloisio11 ]
Bonjour à tous,Je développe un site en PHP/MySQL sur lequel j'ai un formulaire dans lequel le visiteur pourra saisir un lien vers une vidéo (Youtube,
base de donnée instaler automatique [ par antza ]
j'avai fai une aplicaion en php et j'avai presque fini mai je suis bloqué sur une chase.Je veut fair en sorte qu'à l'instalation la base de donné sera
formulaire avec controle de saisie connect a la base des données avec ajax [ par abdou12500 ]
aider moi a trouver ce code (formulaire avec controle de saisie connect a la base des données avec ajax)je
réaffichage de donnée dans formulaire de saisie [ par snakeyes ]
Bonjour à tous et un grand merci à vous.....un novice qui apprend tous les jours grâce à vous.Mon problème, je désire réafficher des données de ma bas
convertisseur raw avi a entrée automatique a partir d'un fichier existant [ par meryyy ]
salut ,voila mon problème : je travaille sur une camera IP qui enregistre les vidéos capturés dans un fichier en format brute .raw , et je veux un log
Projet multi-site automatique [ par Xtaz991 ]
Bonjour Je souhaite mettre en place un site contenant une base d'information sur des produits. Cette base sera accessible par type de produit, par ca
|
Derniers Blogs
TECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOURTECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOUR par ROMELARD Fabrice
Cette session est la dernière pleinière de ces 3 jours de TechDays Paris 2010. Généralement, cette troisième journée est plus axée sur l'avenir vu par Microsoft. Après un retour sur l'avenir vu par la Science Fiction ou par ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : IMPORT CSVRE : IMPORT CSV par ykhider
Cliquez pour lire la suite par ykhider
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|