Formulaire, bdd en javascript. Possible?

Fermé
didzan Messages postés 7 Date d'inscription mardi 3 avril 2007 Statut Membre Dernière intervention 4 avril 2007 - 4 avril 2007 à 00:27
Serge_La Messages postés 407 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 3 mars 2009 - 5 avril 2007 à 03:09
Bonsoir à tous et à toutes,
Je suis nouveau sur le forum et vous prie d'entrée d'excuser mon inexpérience et mon manque de savoir faire.

Je souhaiterais vous soumettre le contexte auquel je ne trouve aucune solution construite avec mon faible niveau de connaissance.

Je voudrais collecter le travail collaboratif d'un groupe.
Nous avons défini les différents champs de recherche qui peuvent nous permettre d'être efficace lors de l’exploitation de cette compilation.
L’idée finale serait de fournir un ou plusieurs CD (ou DVD) (selon le volume d’information collecté) avec l’ensemble de la collecte ET AVEC un petit moteur de recherche permettant de cibler où prendre les informations utiles à un moment donné. Je précise que le rôle du moteur de recherche est uniquement de renvoyé au(x) fiche(s) de présentation d’un travail qui correspond(ent) au(x) critère(s). Je précise également que cette fiche peut-être de n’importe quel format (.doc, .xls, .htm, .pdf, …)
J’avais pensé mettre en place une arborescence commune à l’ensemble (à voir si plusieurs CD) et je pensais faire fonctionner une page htm avec javascript intégré comme moteur de recherche.
Je propose le script en ANNEXE1 ci-après.

Dans ce script, le remplissage de la base de données est de la forme:
// tjs_base.Add("nom du fichier en lien avec extension","nom du titre devant s'afficher pour le résultat de la recherche","liste des mots clés ou des expression permettant une recherche séparés par des virgules");

Nous avons décidé de mettre en place un formulaire pour que chacun puisse apporter les informations à la base.
Le formulaire est prêt avec tout de même un problème (voir plus loin).
Je pensais procéder de la façon suivante :
1) Héberger mon formulaire sur un serveur
2) Créer une base de données de collecte
3) Récupérer le contenu en le mettant en forme (le plus proche possible de celle réclamée par le moteur de recherche javascript
4) Remplir ma base javascript (copier-coller par exemple)

Est-ce la bonne méthode ?
Y a t’il plus simple ou plus approprié à mon cas ?
Quelqu’un peut t’il me guider sur de bons rails ? SVP

Merci d’avance.

Au sujet du problème dans le formulaire, un des champs devrait être « auto-alimentable » (Pas sur de l’expression J)
Concrètement, je voudrais que chacun puisse alimenter la liste déroulante.
La forme serait :
Un « bouton radio » donnant accès à la « liste déroulante » déjà en place,
si aucun choix n’est correct, un deuxième « bouton radio » ouvrirais un champs texte libre où chacun pourra ajouter une « ligne » à la liste établie.
Et là, je sèche dur!

J’espère avoir été assez claire dans l’exposé de mes interrogations.

Je remercie tous ceux qui sont arrivé jusqu’à cette ligne de lecture et je remercie grandement tous ceux qui pourront me venir en aide.

Didier.

ANNEXE1 : (Script base de donnée javascript avec moteur de recherche.

<SCRIPT language=javascript>
// Script développé par Olivier Hondermarck
// D'autres scripts sur https://www.toutjavascript.com/main/index.php3
// Utilisation gratuite à condition de laisser ces commentaires

// Création de la base de données
var tjs_base=new TJS_InitBase("_self");
// TJS_InitBase(target) : target="_blank" pour ouvrir dans une nouvelle page
// structure des données constituant la base de recherche
// tjs_base.Add("nom du fichier en lien avec extension","nom du titre devant s'afficher pour le résultat de la recherche","liste des mots clés ou des expression permettant une recherche séparés par des virgules");
// COMPLETEZ ICI la base de données



function TJS_InitBase(target) {
this.nb_item=0;
this.target=target;
this.Add=AddItem;
this.Search=SearchItem;
}
function AddItem(page,desc,cle) {
var nb = this.nb_item;
var item = new Object;
item.page=page;
item.desc=desc;
item.cle=cle;
this[nb]=item;
this.nb_item++;
}


function SearchItem(txt) {
// txt contient le texte de la recherche
txt = unescape(txt);
txt = txt.replace(/\+/g," ");
var n=tjs_base.nb_item;
var indice=-1;
if (txt=="Saisir un mot clé") {alert("Entrez un mot pour la recherche"); }
else{
document.forms["tjs_search"].elements["mot"].value=txt;
var Z=""; var nb=0;
for (var i=0; i<n; i++) {
if (tjs_base[i].cle.toUpperCase().indexOf(txt.toUpperCase(),0)!="-1") {
Z+="<A target='"+tjs_base.target+"' href='"+tjs_base[i].page+"'>"+tjs_base[i].desc+"</A> <SMALL>("+tjs_base[i].page+")</SMALL><BR>"
nb++;
}
}
if (nb>0) {
if (nb==1) {Z="1 résultat trouvé pour la recherche sur [<B>"+txt+"</B>] : <BR>"+Z;}
else {Z=nb+" résultats trouvés pour la recherche sur [<B>"+txt+"</B>] : <BR>"+Z;}
}else{Z="Aucun résultat pour la recherche sur [<B>"+txt+"</B>]<BR>Vérifiez l'orthographe ou essayez un autre mot clé !";}
document.write(Z);
}
}

function TJS_Search(f) {
if (f.mot.value!=""){f.submit();}
}

function TJS_PrintResult() {
var url=document.location.href;
if (url.indexOf("?mot=",0) > 0) {
var mot=url.substring(url.indexOf("?mot=",0)+5);
SearchItem(mot);
}
}

</SCRIPT>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></HEAD>

<BODY bgcolor="#FFFFFF" background="images/fond_ecole_sponsors.jpg" text="#000000" link="#003399" vlink="#FF9900" alink="#FF8C00">
<FONT FACE="Arial" SIZE='-1' COLOR="navy">
<CENTER>
<p align="center"><font face="Arial" size='-1' color="navy"><font size="+3" face="Comic Sans MS, Verdana"><strong><em><font color="#000000" size="5">CAPITALISATION
2007 _ Moteur de recherche des productions</font></em></strong></font></font></p>
<p align="center"><font size="5" face="Comic Sans MS, Verdana"><em><strong><font face="Arial" size='-1' color="navy"><font size="5" face="Comic Sans MS, Verdana"><em><strong><font color="#000000"><font color="#990000">Tapez
vos recherches en minuscule.</font><font color="#FF0000"><br>
<font face="Arial" size='-1' color="navy"><font size="5" face="Comic Sans MS, Verdana"><em><strong><font face="Comic Sans MS, Verdana"><em><strong><font color="#000000" size="+3"><img src="images/attention.gif" width="64" height="64"></font></strong></em></font></strong></em></font></font>
<font color="#990000">Attention à l'orthographe (accents y compris)</font></font></font></strong></em></font></font><font color="#990000" size="5" face="Comic Sans MS, Verdana"><em><strong>
</strong></em></font><font size="5" face="Comic Sans MS, Verdana"><em><strong><font color="#000000"><font color="#FF0000"><img src="images/attention.gif" width="64" height="64"></font></font></strong></em></font><font color="#000000"><br>
</font></strong></em></font></p>
<form name=tjs_search method=get action="moteur.htm">
<font color="navy" size="-1" face="Arial">
<input name="mot" size=40 maxlength=50 value="Saisir un mot clé ou une expression" onFocus="if (this.value=='Saisir un mot clé ou une expression') {this.value=''}" onBlur="if (this.value==''){this.value='Saisir un mot clé'}">
<input type="button" name="bouton" value="Rechercher" onClick="TJS_Search(this.form)">
</font>
</form>
<p align="center"><font color="navy" size="-1" face="Arial"><font size="5" face="Comic Sans MS, Verdana"><em><strong><font color="#000000"><font color="navy" size="-1" face="Arial">
<script language=javascript>
// Affichage des résultats éventuels.
TJS_PrintResult();
</script>
A voir également:

4 réponses

Serge_La Messages postés 407 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 3 mars 2009 47
4 avril 2007 à 05:52
Bonsoir Didier,
Tout ça semble très bien. Evidemment, puisque tu dois recopier les données, elles ne seront pas disponible immédiatement.
D'habitude, les gens aiment voir le résultat tout de suite. Dans ce cas il te faudrait coder CGI en perl, php, ou autre langage (en plus du javascript pour formatter les affichages).

Serge.
0
didzan Messages postés 7 Date d'inscription mardi 3 avril 2007 Statut Membre Dernière intervention 4 avril 2007
4 avril 2007 à 10:29
Merci Serge_La

Je suis content de savoir que je ne suis pas à coté de la plaque, mais affolé par mes manques pour développer tout ça.

Quelqu'un pourrait-il m'aguiller? SVP

Didier
0
Serge_La Messages postés 407 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 3 mars 2009 47
4 avril 2007 à 18:35
Faudrait que tu engage un programmeur pour ce projet. Ou que tu apprennes un langage CGI.
J'ai fait quelque chose comme cela, pour m'amuser. Je me sert de PERL pour écrire des données dans un fichier javascript. Ça marche super.
Mais normalement, les données sont sauvegardées dans un fichier texte simple et un CGI (PERL, ou php) organise tout ça. La fonction recherche est aussi normalement effectuée par un CGI.

Tout dépend de la quantité de données à manipuler et de la vitesse requise. Si c'est ok de faire ça à la main ou non.

Serge.
0
didzan Messages postés 7 Date d'inscription mardi 3 avril 2007 Statut Membre Dernière intervention 4 avril 2007
4 avril 2007 à 22:41
Salut Serge_La,

Au niveau de la vitesse requise, pas de contrainte (faudrait quand même pas qu'une recherche dure 6 heures... :-) )
Au niveau de la quantité de données à traiter, je dois avoir environ 140 formulaires à traiter et chacun comporte 9 champs.

Ton idée d'engager un programmeur est surement la meilleur mais...
Le problème, c'est que je suis enseignant et que je cherche à organiser de manière constructive une base de données de cours...
Alors, s'il faut que je reverse mon salaire à quelqu'un... ;-)

Merci quand même

Didier.

P.S: J'ai eu une autre idée mais je ne sais pas ce qu'elle vaut:
Si à la validation du formulaire, une page (ou une fenêtre) affichait le code à ajouter dans la base javascript, l'utilisateur (un collègue)n'aurait qu'à copier ce code et le mettre dans un fichier quelconque (word) avec tous les autres.
Au final, je récupère tous les "word" et je rempli la base manuellement (mais avec un code déjà préparé.

J'ai testé un:

$code1= "tjs_base_Add(\"";
$code2= "\"";
$code3= ",";
echo "$code1" "$fichier" "$code2" "$code3" "$code2" "$titre"

qui semble pouvoir m'amener à cette éventualité. ??
les variables $fichier et $titre proviennent du formulaire (il y en a d'autre, mais c'était pour tester la structure)
Mon problème, c'est de ne pas être sur de mon code.

A+
0
Serge_La Messages postés 407 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 3 mars 2009 47
5 avril 2007 à 03:09
Ah je vois, je crois. La recherche avec javascript est rapide. C'est le temps entre la collection des données dans tes words et d'ajouter les codes avec la syntaxe dans la base de données javascript qui est longue, puisque c'est à la main.
En passant, echo n'est pas javascript mais plutôt php. Et les variables n'ont pas besoin du $ en javascript. (Ce qui peut expliquer le manque de gain pécunier des javascripteurs, haha!)

Si j'ai bien compris, ce que tu veux est facile. Il s'agit de collecter des données de gens qui remplissent un formulaire, de générer un code avec un déclic et de l'afficher quelque part sur la même page. Les gens prendraient note du code et le met dans un fichier. Vous êtes tous connectés par intranet alors. C'est ça?

Ce ne serait pas tellement plus difficile d'avoir un CGI PERL ou autre écrire le code javascript dans un fichier texte sur le serveur, que tu récoltes par la suite.

Serge.

PS.Un programmeur n'est pas nécessairement cher pour un petit projet du genre. C'est toi qui fait la maintenance. Je pourrais le faire pas cher. Sinon je peux t'aiguiller.
0