Database locale pour application HTML

Bonjour,

Je cherche à faire une petite application personnelle dans un format type HTML. Pour cela, j'aimerais accéder à une base de données locale (de type sqlite si possible) où j'aurais stocké des données, et à laquelle la page HTML me permettrait d'accéder grâce à des fonctions en javascript.

J'aimerai savoir s'il est possible de créer cette base de données directement dans le dossier de la page HTML, sans avoir à aller la chercher dans le dossier AppData du navigateur dont je vais me servir. Sinon, est-ce que quelqu'un a une meilleure idée de la marche à suivre ?

J'espère que ma requête est suffisamment claire, n'hésitez pas à me demander des précisions sinon.

Merci d'avance.

3 réponses

  1. apparemment il est possible de creer une BDD en javascript,

    vas voir ce site:
    http://ww11.biblioscript.com/javascript/base_base.shtml

    évidement les données sont rentrées manuellement dans le fichier html (voir la partie "debut des données" du script)

    je l'ai un peu retravaillé:
    <html>
    <head>
    <script type="text/JavaScript">
    // appel de la fonction principale et formatage de l'après réponse
    function validate_form() {
    	txt = document.form.search.value;
    	jsi = new makeLinks(linksize);
    	searchLinks(jsi, txt);
    	document.write("<hr>");
    	document.write("<a href='nom_de_ton_fichier.html'>Retour</a> à la recherche.<br><br> ");
    }
    
    function makeEntry (){
    	this.Name="";
    	this.URL = "";
    	this.Desc = "";
    	this.Category = "";
    	this.Target = "";
    	return this;
    }
    
    function makeArray(n) {
    	this.length = n;
    	for (var k = 1; k <= n; k++) {
    		this[k] = "";
    	}
    	return this;
    }
    
    // Création du tableau de la base
    function makeLinks(size) {
    	this.length = size;
    	for (var r=1; r<= size; r++) {
    		this[r] = new makeEntry();
    		this[r].Name = namesArray[r];
    		this[r].URL = urlsArray[r];
    		this[r].Desc = descArray[r];
    		this[r].Category = categoryArray[r];
    		this[r].Target = targetArray[r];
    	}
    	return this;
    }
    
    // Description et indexation du tableau de la base
    var linksize=0
    datesArray = new Array(linksize);
    namesArray = new Array(linksize);
    urlsArray = new Array(linksize);
    descArray = new Array(linksize);
    categoryArray = new Array(linksize);
    targetArray = new Array(linksize);
    
    // Initialisation de la base
    var arraycount=0;
    
    // Début des données
    
    urlsArray[arraycount] = "https://actus.sfr.fr";
    namesArray[arraycount] = "Club Internet";
    descArray[arraycount] = "provider fai isp fournisseur";
    categoryArray[arraycount] = "vendeur";
    targetArray[arraycount] = "target=_top";
    
    arraycount +=1;
    urlsArray[arraycount] = "https://www.orange.fr/portail";
    namesArray[arraycount] = "Wanadoo";
    descArray[arraycount] = "provider fai isp fournisseur france telecom";
    categoryArray[arraycount] = "2";
    targetArray[arraycount] = "target=_top";
    
    arraycount +=1;
    urlsArray[arraycount] = "https://www.orange.fr/portail";
    namesArray[arraycount] = "Orange";
    descArray[arraycount] = "provider fai isp fournisseur france telecom";
    categoryArray[arraycount] = "3";
    targetArray[arraycount] = "target=_top";
    
    // Taille du tableau
    linksize = arraycount;
    
    //creation liste deroulante:
    function crea_liste_deroulante(array_donnees_liste){
    	var array_liste= new Array();
    	array_liste=array_donnees_liste;
    	var liste='<select name="search" >';
    	for(i=0;i<array_liste.length;i++){
    		liste=liste+'<option value="'+array_liste[i]+'">'+array_liste[i]+'</option>';
    	}
    	liste=liste+'</select>';
    	return liste;
    }
    
    // La fonction de recherche elle-même
    function searchLinks(links, keyword){
    
    	// la ligne d'en-tête de la réponse à la base de données
    	document.write("<u>Résultat de la recherche sur <strong>" + keyword + "</strong> :</u><br><br>");
    	for (var q=1; q<=links.length; q++) {
    
    		// Pour chercher sur un élément du tableau, il faut créer un paragraphe comme suit avec le nom de l'élément, ici : URL, ensuite : Desc...
    		if (links[q].URL.toLowerCase().indexOf(keyword) != -1){
    		document.write("<a href=" + links[q].URL +" " + links[q].Target + ">" + links[q].Name + "</a> ");
    		document.write( links[q].Category + "<br><br>");
    		continue;
    		}
    		if (links[q].Desc.toLowerCase().indexOf(keyword) != -1) {
    		document.write("<a href=" + links[q].URL +" " + links[q].Target + ">" + links[q].Name + "</a> ");
    		document.write( links[q].Category + " ");
    		continue;
    		}
    		if (links[q].Name.toLowerCase().indexOf(keyword) != -1) {
    		document.write("<a href=" + links[q].URL +" " + links[q].Target + ">" + links[q].Name + "</a> ");
    		document.write( links[q].Category + " ");
    		continue;
    		}
    	}
    }
    
    </script> 
    </head>
    <body>
    <form name="form">
    Choisir l'élément recherché...
    <div id="liste_content"><!-- ici la liste va etre ecrite par le innerHTML --></div>
    <input type="button" name="submit" value="Rechercher" onClick="validate_form()">
    </form>
    <script type="text/JavaScript">
    //// ATTENTION cette partie de javascript doit être après le formulaire sinon on ne trouve pas l'id "liste_content"
    // on lance la fonction creation de la liste déroulante
    liste=crea_liste_deroulante(urlsArray); 
    //on l'ecrit dans la page dans le div id_content
    document.getElementById('liste_content').innerHTML=liste;
    </script>
    </body>
    </html>
    
    1
    1. Je pense en effet que je vais partir sur cette piste, ça me paraît être la solution la plus simple sans passer par d'autres langages. Je vais de ce pas tester ça avec mon système. Merci pour le coup de main !
      0