Accueil > > > GESTION DE NUMÉRO DE TÉLÉPHONE SIMPLE DANS FIREFOX7
GESTION DE NUMÉRO DE TÉLÉPHONE SIMPLE DANS FIREFOX7
Information sur la source
Description
Exemple simple en une seule page Html de gestion de table de base de données SQL Sqlite intégrée à firefox 7. La page, unique est sans ressource d'image mais il est possible d'en ajouter. Je souhaiterai la publier dans everyoneweb.fr mais je ne sais pas comment me passer du privège UniversalXPconnect indispensable à son fonctionnement (un peu comme l'activeX dans Internet Explorer). Ce que je pense ajouter de nouveau, c'est d'avoir une gestion complète en une seule page qui n'utilise pas une base de données externe mais présente dans le navigateur. Si il existe un moyen plus universel de procéder, merci de me le communiquer.
Source
- <html>
- <head>
- <SCRIPT type="text/javascript">
- function openDB(){
- netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
- Components.utils.import("resource://gre/modules/Services.jsm");
- Components.utils.import("resource://gre/modules/FileUtils.jsm");
- try{
- var file=FileUtils.getFile("ProfD", ["client.db"]);
- }
- catch(e){w(e);}
- try{
- var myDB=Services.storage.openDatabase(file);
- }
- catch(e){w(e);}
- try{
- myDB.executeSimpleSQL("CREATE TABLE memo(key TEXT,value TEXT)");
- alert("La Table de mémorisation est créée");
- }
- catch(e){}
- return (myDB);
- }
- function w(txt){
- document.writeln(txt);
- }
- function memForm(key){
- setMemo(key,document.forms.myForm[key].value);
- }
- function getMemo(key){
- netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
- var myDB=openDB();
- var result="";
- try{
- var s=myDB.createStatement('SELECT value FROM memo WHERE key="'+key+'"');
- if(s.executeStep()){
- result=s.row.value;
- }
- s.reset();
- return result;
- }
- catch(e){
- return("");
- }
- }
- function razMemo(key){
- setMemo(key,"");
- }
- function delMemo(key){
- netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
- var myDB=openDB();
- try{
- myDB.executeSimpleSQL('DELETE FROM memo WHERE key="'+key+'"');
- }
- catch(e){}
- }
- function setMemo(key,value){
- netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
- var myDB=openDB();
- var flag=false;
- try{
- var s=myDB.createStatement('SELECT key FROM memo WHERE key="'+key+'"');
- if (s.executeStep()){
- flag=true;
- }
- s.reset();
- }
- catch(e){alert(e);}
- if(flag){
- try{
- myDB.executeSimpleSQL("UPDATE memo SET value=\""+value+"\" WHERE key=\""+key+"\"");
- }
- catch(e){}
- }else{
- try{
- myDB.executeSimpleSQL("INSERT INTO memo(key,value) VALUES (\""+key+"\",\""+value+"\")");
- }
- catch(e){}
- }
- }
- function dURL(){
- return document.URL;
- }
- function refresh(){
- document.location=dURL();
- }
- function miseAJour(memoChamp, baseChamp){
- netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
- var myDB=openDB();
- var cmd="UPDATE customer SET "+baseChamp+"=\""+getMemo(memoChamp)+"\" WHERE id="+getMemo("Numéro de client");
- try{
- myDB.executeSimpleSQL(cmd);
- }
- catch(e){w(e);}
- }
- </script>
- </head>
-
- <body>
- <form id="myForm">
- <SCRIPT type="text/javascript">
- netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
- var myDB=openDB();
- w("<p><a onclick=\"javascript:setMemo('Action','Aide');\" href=\""+dURL()+"\">Aide</a></p>");
- w("<p><a onclick=\"javascript:setMemo('Action','Gestion technique');\" href=\""+dURL()+"\">Gestion technique</a></p>");
- w("<p><a onclick=\"javascript:setMemo('Action','Gestion fonctionnelle');\" href=\""+dURL()+"\">Gestion fonctionnelle</a></p>");
- if(getMemo("Action")=="Aide"){
- w("<p><b>"+getMemo("Action")+"</b></p>");
- delMemo("Action");
- w("<p>Dans la gestion technique sont rassemblés les actions liées au fonctionnement de la page. ");
- w("Cette page pour fonctionner correctement doit utiliser le renard de feu 6 ou ultérieure et ");
- w("faire un usage continue au moteur de base de données de petit langage de commande de base de ");
- w("données intégré au navigateur, auquel elle accède à travers des commandes du langage SQL. ");
- w("Au démarrage de la page, sa programmation vérifie si elle peut se connecter la base de données ");
- w("clients, locale au bureau. Si elle n'y parvient pas, elle crée cette base de données et elle ");
- w("crée la table de mémorisation dont elle se sert pour stocker des paramètres de navigation à la ");
- w("manière des biscuits selon le terme anglais de même nom. Ces paramètres de navigation sont par ");
- w("exemple, l'enregistrement du lien de navigation sélectionné en vue de rafraîchir la page et ensuite, ");
- w("afficher les informations relatives au lien sélectionné. Cette page est un agenda téléphonique ");
- w("simple, proposant la mémorisation du nom d'un client, son prénom et son numéro de téléphone. ");
- w("Les différents éléments de la page s'articulent selon une gestion technique : Fonction de base ");
- w("au fonctionnement de la page et une gestion fonctionnelle ou métier qui oriente son choix vers ");
- w("des données physiques. Dans la gestion fonctionnelle vous trouverez des liens aux tables gérées, ");
- w("en l'occurrence ici il y en a qu'une seule, les clients. Ensuite quand la table des clients est ");
- w("choisie, d'autres choix sont offerts. Parmi ces choix vous trouverez, la création de la table, ");
- w("ce qui efface complètement la table des clients. Ce choix a besoin d'être confirmé une seconde ");
- w("fois par sécurité. D'autres choix comme : Créer un client, le rechercher. Créer un client attribut ");
- w("un numéro de client automatiquement, attribué selon le dernier numéro créé, plus un. La recherche ");
- w("d'un client se fait selon sont numéro de client, les autres critères de recherche restent à développer. ");
- w("Une fois le client trouvé, si il existe avec ce numéro client, il est affiché dans un tableau. Il ");
- w("est affiché dans un tableau au cas où d'autres modes de recherches sont développés alors plusieurs ");
- w("prénoms de clients peuvent être semblables et sont donc affichés dans le tableau sous la forme de ");
- w("plusieurs lignes dans le tableau. Le lien de navigation au niveau du numéro de client permet d'accéder ");
- w("à un formulaire de modification des informations relatives au client, sauf son numéro de client qui ");
- w("est définitif et ne peut être modifié. La modification de la valeur d'un champ du formulaire, suivie ");
- w("de l'appuie de la touche de tabulation, met à jour la valeur du champ dans la base de données. Il en ");
- w("est de même lors d'un click sur un autre champ du formulaire ou d'un lien navigation présent sur la ");
- w("page. L'indexation permet d'accélérer la recherche d'information, elle est indispensable lorsque le ");
- w("volume d'information est important. Elle se fait avec l'aide d'une clef ou un ensemble de clées qui ");
- w("sont triées dans une table séparée, table spéciale ou d'index. Quand l'index relatif à la clef de ");
- w("l'information recherchée n'est pas présente, la table où se trouve toutes les données, est parcourue ");
- w("intégralement. Ce qui prend beaucoup de temps si la table est volumineuse. Un index doit de temps en temps ");
- w("être recréé. Car au cours des insertions ou suppressions d'enregistrements, les données sont ajoutées ");
- w("ou supprimées de l'index et celui-ci qui est un arbre binaire, se complète jusqu'à saturation et devient ");
- w("moins efficace et donc moins rapide.</p>");
- }
- if(getMemo("Action")=="Gestion technique"){
- w("<p><b>"+getMemo("Action")+"</b></p>");
- delMemo("Action");
- w("<p><a onclick=\"javascript:setMemo('Action','Créer la table des mémorisations');\" href=\""+dURL()+"\">Créer la table des mémorisations</a></p>");
- }
- if(getMemo("Action")=="Créer la table des mémorisations"){
- w("<p><b>"+getMemo("Action")+"</b></p>");
- delMemo("Action");
- w("<p><a onclick=\"javascript:setMemo('Action','Validation de la création de la table des mémorisations');\" href=\""+dURL()+"\">Validation de la création de la table des mémorisation</a></p>");
- }
- if(getMemo("Action")=="Validation de la création de la table des mémorisations"){
- w("<p><b>"+getMemo("Action")+"</b></p>");
- delMemo("Action");
- try{
- myDB.executeSimpleSQL("DROP TABLE memo");
- w("<p>Table des mémorisations supprimée<p>");
- }
- catch(e){
- w("<p>La table des mémorisations n'existe pas</p>");
- }
- try{
- myDB.executeSimpleSQL("CREATE TABLE memo(key TEXT,value TEXT)");
- w("<p>La Table des mémorisations est créée</p>");
- }
- catch(e){
- w("<p>Impossible de créer la table des mémorisations</p>");
- }
- try{
- myDB.executeSimpleSQL("CREATE UNIQUE INDEX ind_memo ON memo(key)");
- w("<p>L'index sur la clée de la table des mémorisation est créé</p>");
- }
- catch(e){
- w("<p>Impossible de créer l'index sur la clée de la table des mémorisations</p>");
- }
- }
- if(getMemo("Action")=="Gestion fonctionnelle"){
- w("<p><b>"+getMemo("Action")+"</b></p>");
- delMemo("Action");
- w("<p><a onclick=\"javascript:setMemo('Action','Gestion des clients');\" href=\""+dURL()+"\">Gestion des clients</a></p>");
- }
- if(getMemo("Action")=="Gestion des clients"){
- w("<p><b>"+getMemo("Action")+"</b></p>");
- delMemo("Action");
- w("<p><a onclick=\"javascript:setMemo('Action','Créer et indexer la table des clients');\" href=\""+dURL()+"\">Créer et indexer la table des clients</a></p>");
- w("<p><a onclick=\"javascript:setMemo('Action','Indexer la table des clients');\" href=\""+dURL()+"\">Indexer la table des clients</a></p>");
- w("<p><a onclick=\"javascript:setMemo('Action','Créer un client');\" href=\""+dURL()+"\">Créer un client</a></p>");
- w("<p><a onclick=\"javascript:setMemo('Action','Rechercher un client');\" href=\""+dURL()+"\">Rechercher un client</a></p>");
- }
- if(getMemo("Action")=="Créer et indexer la table des clients"){
- w("<p><b>"+getMemo("Action")+"</b></p>");
- delMemo("Action");
- w("<p><a onclick=\"javascript:setMemo('Action','Validation de la création et indexation de la table des clients');\" href=\""+dURL()+"\">Validation de la création de la table des clients</a></p>");
- }
- if(getMemo("Action")=="Validation de la création et indexation de la table des clients"){
- w("<p><b>"+getMemo("Action")+"</b></p>");
- delMemo("Action");
- try{
- myDB.executeSimpleSQL("DROP TABLE customer");
- w("<p>Table des clients supprimée<p>");
- }
- catch(e){
- w("<p>La table des clients n'existe pas</p>");
- }
- try{
- myDB.executeSimpleSQL("CREATE TABLE customer(id INT,name TEXT,firstname TEXT,phone_number TEXT)");
- w("<p>La Table des clients est créée</p>");
- }
- catch(e){
- w("<p>Impossible de créer la table des clients</p>");
- }
- try{
- myDB.executeSimpleSQL("CREATE UNIQUE INDEX ind_custom ON customer(id)");
- w("<p>L'index sur le numéro de ligne de la table des clients est créé</p>");
- }
- catch(e){
- w("<p>Impossible de créer l'index sur le numéro de ligne de la table des clients</p>");
- }
- }
- if(getMemo("Action")=="Indexer la table des clients"){
- w("<p><b>"+getMemo("Action")+"</b></p>");
- delMemo("Action");
- w("<p>L'indexation permet d'accélérer la recherche en créant une table secondaire où une clef d'accès est triée et fait référence à la table principale. Evite ainsi de parcourir la table entièrement en accédant directement à l'information en utilisant l'index.</p>");
- w("<p><a onclick=\"javascript:setMemo('Action','Validation pour indexer la table des clients');\" href=\""+dURL()+"\">Validation de l'indexation de la table des clients</a></p>");
- }
- if(getMemo("Action")=="Validation pour indexer la table des clients"){
- w("<p><b>"+getMemo("Action")+"</b></p>");
- delMemo("Action");
- try{
- myDB.executeSimpleSQL("DROP INDEX ind_custom");
- w("<p>L'index unique sur le numéro de client de la table des clients est supprimé<p>");
- }
- catch(e){
- w("<p>L'index unique sur le numéro de client de la table des clients n'existe pas</p>");
- }
- try{
- myDB.executeSimpleSQL("CREATE UNIQUE INDEX ind_custom ON customer(id)");
- w("<p>L'index unique sur le numéro de client de la table des clients est créé</p>");
- }
- catch(e){
- w("<p>Impossible de créer l'index unique sur le numéro de client de la table des clients</p>");
- }
- }
- if(getMemo("Action")=="Créer un client"){
- w("<p><b>"+getMemo("Action")+"</b></p>");
- delMemo("Action");
- w("<table border=1>");
- w("<tr><td>Champ</td><td>Valeur</td></tr>");
- delMemo("Nom du client");
- w("<tr><td>Nom du client</td><td><input name=\"Nom du client\" type=\"text\" size=30 onchange=\"javascript:memForm('Nom du client');\"></input></td></tr>");
- delMemo("Prénom du client");
- w("<tr><td>Prénom du client</td><td><input name=\"Prénom du client\" type=\"text\" size=30 onchange=\"javascript:memForm('Prénom du client');\"></input></td></tr>");
- delMemo("Numéro de téléphone du client");
- w("<tr><td>Numéro de téléphone du client</td><td><input name=\"Numéro de téléphone du client\" type=\"text\" size=30 onchange=\"javascript:memForm('Numéro de téléphone du client');\"></input></td></tr>");
- w("</table>");
- w("<p><a onclick=\"javascript:setMemo('Action','Validation de la création du nouveau client');\" href=\""+dURL()+"\">Validation de la création du nouveau client</a></p>");
- }
- if(getMemo("Action")=="Validation de la création du nouveau client"){
- w("<p><b>"+getMemo("Action")+"</b></p>");
- delMemo("Action");
- var id=0;
- try{
- var s=myDB.createStatement('SELECT id FROM customer ORDER BY id DESC');
- if(s.executeStep()){
- id=s.row.id;
- id++;
- }else{
- id=1;
- }
- s.reset();
- }
- catch(e){
- w("<p>Impossible de d'estimer le numéro attribué au client<p>");
- }
- if(id){
- try{
- var cmd="INSERT INTO customer(id,name,firstname,phone_number) VALUES ("+id+",\""+getMemo("Nom du client")+"\",\""+getMemo("Prénom du client")+"\",\""+getMemo("Numéro de téléphone du client")+"\")";
- myDB.executeSimpleSQL(cmd);
- w("<p>Client créé avec le numéro "+id+"</p>");
- w("<p><a onclick=\"javascript:setMemo('Numéro de client',"+id+");setMemo('Action','Modification du client');\" href=\""+dURL()+"\">Modification du client</a></p>");
- }
- catch(e){w("<p>"+e+"</p>");}
- }
-
- }
- if(getMemo("Action")=="Rechercher un client"){
- w("<p><b>"+getMemo("Action")+"</b></p>");
- delMemo("Action");
- w("<table border=1>");
- w("<tr><td>Champ</td><td>Valeur</td></tr>");
- delMemo("Numéro de client");
- w("<tr><td>Numéro de client</td><td><input name=\"Numéro de client\" type=\"text\" size=10 onchange=\"javascript:memForm('Numéro de client');\"></input></td></tr>");
- delMemo("Nom du client");
- w("<tr><td>Nom du client</td><td><input name=\"Nom du client\" type=\"text\" size=30 onchange=\"javascript:memForm('Nom du client');\"></input></td></tr>");
- delMemo("Prénom du client");
- w("<tr><td>Prénom du client</td><td><input name=\"Prénom du client\" type=\"text\" size=30 onchange=\"javascript:memForm('Prénom du client');\"></input></td></tr>");
- delMemo("Numéro de téléphone du client");
- w("<tr><td>Numéro de téléphone du client</td><td><input name=\"Numéro de téléphone du client\" type=\"text\" size=30 onchange=\"javascript:memForm('Numéro de téléphone du client');\"></input></td></tr>");
- w("</table>");
- w("<p><a onclick=\"javascript:setMemo('Action','Validation de la recherche du client');\" href=\""+dURL()+"\">Validation de la recherche du client</a></p>");
- }
- if(getMemo("Action")=="Validation de la recherche du client"){
- w("<p><b>"+getMemo("Action")+"</b></p>");
- delMemo("Action");
-
- try{
- var cmd="SELECT * FROM customer WHERE id="+getMemo("Numéro de client");
- var s=myDB.createStatement(cmd);
- var count=0;
- if(s.executeStep()){
- count++;
- if(count==1){
- w("<table border=1>");
- w("<tr><td>ID</td><td>NOM</td><td>PRENOM</td><td>NUMERO DE TELEPHONE</td></tr>");
- }
- w("<tr><td><a href=\""+dURL()+"\" onclick=\"javascript:setMemo('Action','Modification du client');setMemo('Numéro de client',"+s.row.id+");\">"+s.row.id+"</a></td>");
- w("<td>"+s.row.name+"</td>");
- w("<td>"+s.row.firstname+"</td>");
- w("<td>"+s.row.phone_number+"</td></tr>");
- }
- s.reset();
- if(count){
- w("</table>");
- w("<p>"+count+" client(s) répond(ent) à la sélection</p>");
- }else{
- w("<p>Pas de client avec ce numéro</p>");
- }
- }
- catch(e){
- w(e);
- }
- }
- if(getMemo("Action")=="Modification du client"){
- w("<p><b>"+getMemo("Action")+"</b></p>");
- delMemo("Action");
- try{
- var cmd="SELECT * FROM customer WHERE id="+getMemo("Numéro de client");
- var s=myDB.createStatement(cmd);
- if(s.executeStep()){
- w("<table border=1>");
- w("<tr><td>Numéro de client</td><td aline=right>"+getMemo("Numéro de client")+"</td></tr>");
- w("<tr><td>Nom du client</td><td><input name=\"Nom du client\" type=\"text\" size=30 value=\""+s.row.name+"\" onchange=\"javascript:memForm('Nom du client');miseAJour('Nom du client','name');\"></input></td></tr>");
- w("<tr><td>Prénom du client</td><td><input name=\"Prénom du client\" type=\"text\" size=30 value=\""+s.row.firstname+"\" onchange=\"javascript:memForm('Prénom du client');miseAJour('Prénom du client','firstname');\"></input></td></tr>");
- w("<tr><td>Numéro de téléphone du client</td><td><input name=\"Numéro de téléphone du client\" type=\"text\" size=30 value=\""+s.row.phone_number+"\" onchange=\"javascript:memForm('Numéro de téléphone du client');miseAJour('Numéro de téléphone du client','phone_number');\"></input></td></tr>");
- w("</table>");
- w("<p><a href=\""+dURL()+"\">Mettre à jour ce client</a></p>");
- w("<p><a onclick=\"javascript:setMemo('Action','Supprimer ce client');\" href=\""+dURL()+"\">Supprimer ce client</a></p>");
-
- }
- s.reset();
- }
- catch(e){
- w(e);
- }
- }
- if(getMemo("Action")=="Supprimer ce client"){
- w("<p><b>"+getMemo("Action")+"</b></p>");
- delMemo("Action");
- w("<p><a onclick=\"javascript:setMemo('Action','Validation de la suppression de ce client');\" href=\""+dURL()+"\">Validation de la suppression du client numéro "+getMemo("Numéro de client")+"</a></p>");
- }
- if(getMemo("Action")=="Validation de la suppression de ce client"){
- w("<p><b>"+getMemo("Action")+"</b></p>");
- delMemo("Action");
- try{
- myDB.executeSimpleSQL('DELETE FROM customer WHERE id='+getMemo("Numéro de client"));
- w("<p>Client supprimé</p>");
- }
- catch(e){
- w("<p>"+e+"</p>");
- }
- }
- w("<p>fin de la page</p>");
- </script>
- </form>
- </body>
- </html>
<html>
<head>
<SCRIPT type="text/javascript">
function openDB(){
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
Components.utils.import("resource://gre/modules/Services.jsm");
Components.utils.import("resource://gre/modules/FileUtils.jsm");
try{
var file=FileUtils.getFile("ProfD", ["client.db"]);
}
catch(e){w(e);}
try{
var myDB=Services.storage.openDatabase(file);
}
catch(e){w(e);}
try{
myDB.executeSimpleSQL("CREATE TABLE memo(key TEXT,value TEXT)");
alert("La Table de mémorisation est créée");
}
catch(e){}
return (myDB);
}
function w(txt){
document.writeln(txt);
}
function memForm(key){
setMemo(key,document.forms.myForm[key].value);
}
function getMemo(key){
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
var myDB=openDB();
var result="";
try{
var s=myDB.createStatement('SELECT value FROM memo WHERE key="'+key+'"');
if(s.executeStep()){
result=s.row.value;
}
s.reset();
return result;
}
catch(e){
return("");
}
}
function razMemo(key){
setMemo(key,"");
}
function delMemo(key){
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
var myDB=openDB();
try{
myDB.executeSimpleSQL('DELETE FROM memo WHERE key="'+key+'"');
}
catch(e){}
}
function setMemo(key,value){
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
var myDB=openDB();
var flag=false;
try{
var s=myDB.createStatement('SELECT key FROM memo WHERE key="'+key+'"');
if (s.executeStep()){
flag=true;
}
s.reset();
}
catch(e){alert(e);}
if(flag){
try{
myDB.executeSimpleSQL("UPDATE memo SET value=\""+value+"\" WHERE key=\""+key+"\"");
}
catch(e){}
}else{
try{
myDB.executeSimpleSQL("INSERT INTO memo(key,value) VALUES (\""+key+"\",\""+value+"\")");
}
catch(e){}
}
}
function dURL(){
return document.URL;
}
function refresh(){
document.location=dURL();
}
function miseAJour(memoChamp, baseChamp){
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
var myDB=openDB();
var cmd="UPDATE customer SET "+baseChamp+"=\""+getMemo(memoChamp)+"\" WHERE id="+getMemo("Numéro de client");
try{
myDB.executeSimpleSQL(cmd);
}
catch(e){w(e);}
}
</script>
</head>
<body>
<form id="myForm">
<SCRIPT type="text/javascript">
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
var myDB=openDB();
w("<p><a onclick=\"javascript:setMemo('Action','Aide');\" href=\""+dURL()+"\">Aide</a></p>");
w("<p><a onclick=\"javascript:setMemo('Action','Gestion technique');\" href=\""+dURL()+"\">Gestion technique</a></p>");
w("<p><a onclick=\"javascript:setMemo('Action','Gestion fonctionnelle');\" href=\""+dURL()+"\">Gestion fonctionnelle</a></p>");
if(getMemo("Action")=="Aide"){
w("<p><b>"+getMemo("Action")+"</b></p>");
delMemo("Action");
w("<p>Dans la gestion technique sont rassemblés les actions liées au fonctionnement de la page. ");
w("Cette page pour fonctionner correctement doit utiliser le renard de feu 6 ou ultérieure et ");
w("faire un usage continue au moteur de base de données de petit langage de commande de base de ");
w("données intégré au navigateur, auquel elle accède à travers des commandes du langage SQL. ");
w("Au démarrage de la page, sa programmation vérifie si elle peut se connecter la base de données ");
w("clients, locale au bureau. Si elle n'y parvient pas, elle crée cette base de données et elle ");
w("crée la table de mémorisation dont elle se sert pour stocker des paramètres de navigation à la ");
w("manière des biscuits selon le terme anglais de même nom. Ces paramètres de navigation sont par ");
w("exemple, l'enregistrement du lien de navigation sélectionné en vue de rafraîchir la page et ensuite, ");
w("afficher les informations relatives au lien sélectionné. Cette page est un agenda téléphonique ");
w("simple, proposant la mémorisation du nom d'un client, son prénom et son numéro de téléphone. ");
w("Les différents éléments de la page s'articulent selon une gestion technique : Fonction de base ");
w("au fonctionnement de la page et une gestion fonctionnelle ou métier qui oriente son choix vers ");
w("des données physiques. Dans la gestion fonctionnelle vous trouverez des liens aux tables gérées, ");
w("en l'occurrence ici il y en a qu'une seule, les clients. Ensuite quand la table des clients est ");
w("choisie, d'autres choix sont offerts. Parmi ces choix vous trouverez, la création de la table, ");
w("ce qui efface complètement la table des clients. Ce choix a besoin d'être confirmé une seconde ");
w("fois par sécurité. D'autres choix comme : Créer un client, le rechercher. Créer un client attribut ");
w("un numéro de client automatiquement, attribué selon le dernier numéro créé, plus un. La recherche ");
w("d'un client se fait selon sont numéro de client, les autres critères de recherche restent à développer. ");
w("Une fois le client trouvé, si il existe avec ce numéro client, il est affiché dans un tableau. Il ");
w("est affiché dans un tableau au cas où d'autres modes de recherches sont développés alors plusieurs ");
w("prénoms de clients peuvent être semblables et sont donc affichés dans le tableau sous la forme de ");
w("plusieurs lignes dans le tableau. Le lien de navigation au niveau du numéro de client permet d'accéder ");
w("à un formulaire de modification des informations relatives au client, sauf son numéro de client qui ");
w("est définitif et ne peut être modifié. La modification de la valeur d'un champ du formulaire, suivie ");
w("de l'appuie de la touche de tabulation, met à jour la valeur du champ dans la base de données. Il en ");
w("est de même lors d'un click sur un autre champ du formulaire ou d'un lien navigation présent sur la ");
w("page. L'indexation permet d'accélérer la recherche d'information, elle est indispensable lorsque le ");
w("volume d'information est important. Elle se fait avec l'aide d'une clef ou un ensemble de clées qui ");
w("sont triées dans une table séparée, table spéciale ou d'index. Quand l'index relatif à la clef de ");
w("l'information recherchée n'est pas présente, la table où se trouve toutes les données, est parcourue ");
w("intégralement. Ce qui prend beaucoup de temps si la table est volumineuse. Un index doit de temps en temps ");
w("être recréé. Car au cours des insertions ou suppressions d'enregistrements, les données sont ajoutées ");
w("ou supprimées de l'index et celui-ci qui est un arbre binaire, se complète jusqu'à saturation et devient ");
w("moins efficace et donc moins rapide.</p>");
}
if(getMemo("Action")=="Gestion technique"){
w("<p><b>"+getMemo("Action")+"</b></p>");
delMemo("Action");
w("<p><a onclick=\"javascript:setMemo('Action','Créer la table des mémorisations');\" href=\""+dURL()+"\">Créer la table des mémorisations</a></p>");
}
if(getMemo("Action")=="Créer la table des mémorisations"){
w("<p><b>"+getMemo("Action")+"</b></p>");
delMemo("Action");
w("<p><a onclick=\"javascript:setMemo('Action','Validation de la création de la table des mémorisations');\" href=\""+dURL()+"\">Validation de la création de la table des mémorisation</a></p>");
}
if(getMemo("Action")=="Validation de la création de la table des mémorisations"){
w("<p><b>"+getMemo("Action")+"</b></p>");
delMemo("Action");
try{
myDB.executeSimpleSQL("DROP TABLE memo");
w("<p>Table des mémorisations supprimée<p>");
}
catch(e){
w("<p>La table des mémorisations n'existe pas</p>");
}
try{
myDB.executeSimpleSQL("CREATE TABLE memo(key TEXT,value TEXT)");
w("<p>La Table des mémorisations est créée</p>");
}
catch(e){
w("<p>Impossible de créer la table des mémorisations</p>");
}
try{
myDB.executeSimpleSQL("CREATE UNIQUE INDEX ind_memo ON memo(key)");
w("<p>L'index sur la clée de la table des mémorisation est créé</p>");
}
catch(e){
w("<p>Impossible de créer l'index sur la clée de la table des mémorisations</p>");
}
}
if(getMemo("Action")=="Gestion fonctionnelle"){
w("<p><b>"+getMemo("Action")+"</b></p>");
delMemo("Action");
w("<p><a onclick=\"javascript:setMemo('Action','Gestion des clients');\" href=\""+dURL()+"\">Gestion des clients</a></p>");
}
if(getMemo("Action")=="Gestion des clients"){
w("<p><b>"+getMemo("Action")+"</b></p>");
delMemo("Action");
w("<p><a onclick=\"javascript:setMemo('Action','Créer et indexer la table des clients');\" href=\""+dURL()+"\">Créer et indexer la table des clients</a></p>");
w("<p><a onclick=\"javascript:setMemo('Action','Indexer la table des clients');\" href=\""+dURL()+"\">Indexer la table des clients</a></p>");
w("<p><a onclick=\"javascript:setMemo('Action','Créer un client');\" href=\""+dURL()+"\">Créer un client</a></p>");
w("<p><a onclick=\"javascript:setMemo('Action','Rechercher un client');\" href=\""+dURL()+"\">Rechercher un client</a></p>");
}
if(getMemo("Action")=="Créer et indexer la table des clients"){
w("<p><b>"+getMemo("Action")+"</b></p>");
delMemo("Action");
w("<p><a onclick=\"javascript:setMemo('Action','Validation de la création et indexation de la table des clients');\" href=\""+dURL()+"\">Validation de la création de la table des clients</a></p>");
}
if(getMemo("Action")=="Validation de la création et indexation de la table des clients"){
w("<p><b>"+getMemo("Action")+"</b></p>");
delMemo("Action");
try{
myDB.executeSimpleSQL("DROP TABLE customer");
w("<p>Table des clients supprimée<p>");
}
catch(e){
w("<p>La table des clients n'existe pas</p>");
}
try{
myDB.executeSimpleSQL("CREATE TABLE customer(id INT,name TEXT,firstname TEXT,phone_number TEXT)");
w("<p>La Table des clients est créée</p>");
}
catch(e){
w("<p>Impossible de créer la table des clients</p>");
}
try{
myDB.executeSimpleSQL("CREATE UNIQUE INDEX ind_custom ON customer(id)");
w("<p>L'index sur le numéro de ligne de la table des clients est créé</p>");
}
catch(e){
w("<p>Impossible de créer l'index sur le numéro de ligne de la table des clients</p>");
}
}
if(getMemo("Action")=="Indexer la table des clients"){
w("<p><b>"+getMemo("Action")+"</b></p>");
delMemo("Action");
w("<p>L'indexation permet d'accélérer la recherche en créant une table secondaire où une clef d'accès est triée et fait référence à la table principale. Evite ainsi de parcourir la table entièrement en accédant directement à l'information en utilisant l'index.</p>");
w("<p><a onclick=\"javascript:setMemo('Action','Validation pour indexer la table des clients');\" href=\""+dURL()+"\">Validation de l'indexation de la table des clients</a></p>");
}
if(getMemo("Action")=="Validation pour indexer la table des clients"){
w("<p><b>"+getMemo("Action")+"</b></p>");
delMemo("Action");
try{
myDB.executeSimpleSQL("DROP INDEX ind_custom");
w("<p>L'index unique sur le numéro de client de la table des clients est supprimé<p>");
}
catch(e){
w("<p>L'index unique sur le numéro de client de la table des clients n'existe pas</p>");
}
try{
myDB.executeSimpleSQL("CREATE UNIQUE INDEX ind_custom ON customer(id)");
w("<p>L'index unique sur le numéro de client de la table des clients est créé</p>");
}
catch(e){
w("<p>Impossible de créer l'index unique sur le numéro de client de la table des clients</p>");
}
}
if(getMemo("Action")=="Créer un client"){
w("<p><b>"+getMemo("Action")+"</b></p>");
delMemo("Action");
w("<table border=1>");
w("<tr><td>Champ</td><td>Valeur</td></tr>");
delMemo("Nom du client");
w("<tr><td>Nom du client</td><td><input name=\"Nom du client\" type=\"text\" size=30 onchange=\"javascript:memForm('Nom du client');\"></input></td></tr>");
delMemo("Prénom du client");
w("<tr><td>Prénom du client</td><td><input name=\"Prénom du client\" type=\"text\" size=30 onchange=\"javascript:memForm('Prénom du client');\"></input></td></tr>");
delMemo("Numéro de téléphone du client");
w("<tr><td>Numéro de téléphone du client</td><td><input name=\"Numéro de téléphone du client\" type=\"text\" size=30 onchange=\"javascript:memForm('Numéro de téléphone du client');\"></input></td></tr>");
w("</table>");
w("<p><a onclick=\"javascript:setMemo('Action','Validation de la création du nouveau client');\" href=\""+dURL()+"\">Validation de la création du nouveau client</a></p>");
}
if(getMemo("Action")=="Validation de la création du nouveau client"){
w("<p><b>"+getMemo("Action")+"</b></p>");
delMemo("Action");
var id=0;
try{
var s=myDB.createStatement('SELECT id FROM customer ORDER BY id DESC');
if(s.executeStep()){
id=s.row.id;
id++;
}else{
id=1;
}
s.reset();
}
catch(e){
w("<p>Impossible de d'estimer le numéro attribué au client<p>");
}
if(id){
try{
var cmd="INSERT INTO customer(id,name,firstname,phone_number) VALUES ("+id+",\""+getMemo("Nom du client")+"\",\""+getMemo("Prénom du client")+"\",\""+getMemo("Numéro de téléphone du client")+"\")";
myDB.executeSimpleSQL(cmd);
w("<p>Client créé avec le numéro "+id+"</p>");
w("<p><a onclick=\"javascript:setMemo('Numéro de client',"+id+");setMemo('Action','Modification du client');\" href=\""+dURL()+"\">Modification du client</a></p>");
}
catch(e){w("<p>"+e+"</p>");}
}
}
if(getMemo("Action")=="Rechercher un client"){
w("<p><b>"+getMemo("Action")+"</b></p>");
delMemo("Action");
w("<table border=1>");
w("<tr><td>Champ</td><td>Valeur</td></tr>");
delMemo("Numéro de client");
w("<tr><td>Numéro de client</td><td><input name=\"Numéro de client\" type=\"text\" size=10 onchange=\"javascript:memForm('Numéro de client');\"></input></td></tr>");
delMemo("Nom du client");
w("<tr><td>Nom du client</td><td><input name=\"Nom du client\" type=\"text\" size=30 onchange=\"javascript:memForm('Nom du client');\"></input></td></tr>");
delMemo("Prénom du client");
w("<tr><td>Prénom du client</td><td><input name=\"Prénom du client\" type=\"text\" size=30 onchange=\"javascript:memForm('Prénom du client');\"></input></td></tr>");
delMemo("Numéro de téléphone du client");
w("<tr><td>Numéro de téléphone du client</td><td><input name=\"Numéro de téléphone du client\" type=\"text\" size=30 onchange=\"javascript:memForm('Numéro de téléphone du client');\"></input></td></tr>");
w("</table>");
w("<p><a onclick=\"javascript:setMemo('Action','Validation de la recherche du client');\" href=\""+dURL()+"\">Validation de la recherche du client</a></p>");
}
if(getMemo("Action")=="Validation de la recherche du client"){
w("<p><b>"+getMemo("Action")+"</b></p>");
delMemo("Action");
try{
var cmd="SELECT * FROM customer WHERE id="+getMemo("Numéro de client");
var s=myDB.createStatement(cmd);
var count=0;
if(s.executeStep()){
count++;
if(count==1){
w("<table border=1>");
w("<tr><td>ID</td><td>NOM</td><td>PRENOM</td><td>NUMERO DE TELEPHONE</td></tr>");
}
w("<tr><td><a href=\""+dURL()+"\" onclick=\"javascript:setMemo('Action','Modification du client');setMemo('Numéro de client',"+s.row.id+");\">"+s.row.id+"</a></td>");
w("<td>"+s.row.name+"</td>");
w("<td>"+s.row.firstname+"</td>");
w("<td>"+s.row.phone_number+"</td></tr>");
}
s.reset();
if(count){
w("</table>");
w("<p>"+count+" client(s) répond(ent) à la sélection</p>");
}else{
w("<p>Pas de client avec ce numéro</p>");
}
}
catch(e){
w(e);
}
}
if(getMemo("Action")=="Modification du client"){
w("<p><b>"+getMemo("Action")+"</b></p>");
delMemo("Action");
try{
var cmd="SELECT * FROM customer WHERE id="+getMemo("Numéro de client");
var s=myDB.createStatement(cmd);
if(s.executeStep()){
w("<table border=1>");
w("<tr><td>Numéro de client</td><td aline=right>"+getMemo("Numéro de client")+"</td></tr>");
w("<tr><td>Nom du client</td><td><input name=\"Nom du client\" type=\"text\" size=30 value=\""+s.row.name+"\" onchange=\"javascript:memForm('Nom du client');miseAJour('Nom du client','name');\"></input></td></tr>");
w("<tr><td>Prénom du client</td><td><input name=\"Prénom du client\" type=\"text\" size=30 value=\""+s.row.firstname+"\" onchange=\"javascript:memForm('Prénom du client');miseAJour('Prénom du client','firstname');\"></input></td></tr>");
w("<tr><td>Numéro de téléphone du client</td><td><input name=\"Numéro de téléphone du client\" type=\"text\" size=30 value=\""+s.row.phone_number+"\" onchange=\"javascript:memForm('Numéro de téléphone du client');miseAJour('Numéro de téléphone du client','phone_number');\"></input></td></tr>");
w("</table>");
w("<p><a href=\""+dURL()+"\">Mettre à jour ce client</a></p>");
w("<p><a onclick=\"javascript:setMemo('Action','Supprimer ce client');\" href=\""+dURL()+"\">Supprimer ce client</a></p>");
}
s.reset();
}
catch(e){
w(e);
}
}
if(getMemo("Action")=="Supprimer ce client"){
w("<p><b>"+getMemo("Action")+"</b></p>");
delMemo("Action");
w("<p><a onclick=\"javascript:setMemo('Action','Validation de la suppression de ce client');\" href=\""+dURL()+"\">Validation de la suppression du client numéro "+getMemo("Numéro de client")+"</a></p>");
}
if(getMemo("Action")=="Validation de la suppression de ce client"){
w("<p><b>"+getMemo("Action")+"</b></p>");
delMemo("Action");
try{
myDB.executeSimpleSQL('DELETE FROM customer WHERE id='+getMemo("Numéro de client"));
w("<p>Client supprimé</p>");
}
catch(e){
w("<p>"+e+"</p>");
}
}
w("<p>fin de la page</p>");
</script>
</form>
</body>
</html>
Conclusion
J'aimerai faire d'autres exemples selon la même base de travail et surtout pouvoir les publier sur un site gratuis de présentation de contenu. Mes recherches ne m'ont pas encore permis de trouver la solution idéale.
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
acceder a une bade SQLite depuis une page web via javascript. [ par fbsandman ]
Bonjour à tous, Je débute en programmation html/javascript et donc, fatalement, je me retrouve un peu bloqué. En fait ce que je voudrais faire c'est c
everyoneweb [ par rotomtom ]
Bonjour, En ce moment j'utilise firefox 7, javascript et sqlite intégré au navigateur avec un privilège UniversalXPconnect. J'aimerai publier une pag
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
UTILISER UN .JSUTILISER UN .JS par zaikoe
Cliquez pour lire la suite par zaikoe
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|