Masque de recherche sans submit

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

Masque de recherche sans submit

Messagepar broutzy » 26 Nov 2009 à 14:31

Bonjour à tous,

Voici mon problème:

En mode web, j'ai un masque de recherche avec différents critères + un bouton "Rechercher".
Ce bouton lance un agent lotusscript qui fait un db.Search et met les résultats dans un champ "Results".
Les résultats s'affichent bien, aucun problème.

Par contre si sur un des champs critères j'appuie sur "Entrée", ça déclenche un submit et la je n'arrive pas à obtenir l'affichage de mes résultats.

J'ai essayé de combiner le webquerysave et le $$return, mais au mieux j'ai mon masque qui s'affiche vierge.

Comment obtenir la même chose en appuyant sur "Entrée" qu'en cliquant sur un bouton ?
Cordialement. :)

Pascal Broutèle
Groupe D&O
Avatar de l’utilisateur
broutzy
Posteur néophyte
Posteur néophyte
 
Message(s) : 51
Inscrit(e) le : 10 Jan 2005 à 11:23
Localisation : Paris

Messagepar AlexandreV » 26 Nov 2009 à 14:59

Bonjour,
j'ai déjà effectué ce genre d'action pour lancer une recherche sur un annuaire d'entreprise personnalisé.
Pour que l'appuie de la touche entrée lance la recherche, j'ai utilisé ce code dans le form :

Pour les valeurs calculées, je met directement la formule entre <>
---------------------------------------
Code : Tout sélectionner
...
code HTML
...
</form>
<form action="/<@WebDbName>/All" name="abcd" method="get" target="body" onsubmit="this.Query.value = 'FIELD Index CONTAINS ' + this.Query2.value+'*' ;">
<input type="hidden" name="Searchview">
<input type="hidden" name="SearchOrder" value="4">
<input type="hidden" name="SearchWv" value="FALSE">
<input type="hidden" name="SearchThesaurus" value="FALSE">
<input type="hidden" name="SearchFuzzy" value="FALSE">
<input type="hidden" name="SearchEntry" value="ResultEntry">
<input type="hidden" name="Query" value="">

...
...
...

</form>


Le champ Query2 est le champ dans le lequel l'utilisateur saisi les infos a rechercher

J'espère que cela est assez clair.
Avatar de l’utilisateur
AlexandreV
Apprenti-posteur
Apprenti-posteur
 
Message(s) : 104
Inscrit(e) le : 23 Nov 2009 à 16:03
Localisation : Combs la ville (Seine et Marne)

Messagepar broutzy » 26 Nov 2009 à 15:27

AlexandreV a écrit:Bonjour,
j'ai déjà effectué ce genre d'action pour lancer une recherche sur un annuaire d'entreprise personnalisé.
Pour que l'appuie de la touche entrée lance la recherche, j'ai utilisé ce code dans le form :

Pour les valeurs calculées, je met directement la formule entre <>
---------------------------------------
Code : Tout sélectionner
...
code HTML
...
</form>
<form>
<input>
<input>
<input>
<input>
<input>
<input>
<input>

...
...
...

</form>


Le champ Query2 est le champ dans le lequel l'utilisateur saisi les infos a rechercher

J'espère que cela est assez clair.


Merci mais dans mon cas je n'utilise pas de vue pour afficher les résultats, ils sont intégrés dans un champ du masque de recherche par l'agent.
A+
Cordialement. :)

Pascal Broutèle
Groupe D&O
Avatar de l’utilisateur
broutzy
Posteur néophyte
Posteur néophyte
 
Message(s) : 51
Inscrit(e) le : 10 Jan 2005 à 11:23
Localisation : Paris

Messagepar Michael DELIQUE » 26 Nov 2009 à 15:29

salut

tu peux essayer un code Java Script qui intercept la touche entré ?
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar abertisch » 26 Nov 2009 à 15:31

Michael DELIQUE a écrit:salut

tu peux essayer un code Java Script qui intercept la touche entré ?


J'allais le dire :lol: :lol:
"Lotus, il n'y a qu'en rouleaux que ça fait pas mal au cul"
abertisch
Roi des posts
Roi des posts
 
Message(s) : 763
Inscrit(e) le : 25 Oct 2006 à 13:51
Localisation : Suisse

Messagepar broutzy » 26 Nov 2009 à 15:55

Michael DELIQUE a écrit:salut

tu peux essayer un code Java Script qui intercept la touche entré ?


Oui bonne idée comme ça je peut bloquer la touche ENTREE.
C'est déjà ça hop je met en prod.
L'idéal serait de pouvoir exécuter mon agent à la place. Je ne vois pas comment faire en js sans perdre le documentcontext ?

merci
Cordialement. :)

Pascal Broutèle
Groupe D&O
Avatar de l’utilisateur
broutzy
Posteur néophyte
Posteur néophyte
 
Message(s) : 51
Inscrit(e) le : 10 Jan 2005 à 11:23
Localisation : Paris

Messagepar AlexandreV » 26 Nov 2009 à 16:06

broutzy a écrit:
Michael DELIQUE a écrit:L'idéal serait de pouvoir exécuter mon agent à la place. Je ne vois pas comment faire en js sans perdre le documentcontext ?


Tu peux charger ton masque dans un frameset. Le frame qui affiche ton code fera une hauteur de 100% et l'autre une hauteur de zero.

Ensuite à l'aide d'une fonction js lors de l'appuie sur la touche entrée, tu appelles ton agent lotus script.

Mais pour que cela soit transparent, et que tu ne perdes pas ton contexte, tu fais s'exécuter dans le frame qui a une hauteur de zero.
Comme ca, l'agent s'exécute dans le frame "caché" et tu peux même faire du javascript dans ton agent qui pourra aller écrire directement dans ta frame principale...
Avatar de l’utilisateur
AlexandreV
Apprenti-posteur
Apprenti-posteur
 
Message(s) : 104
Inscrit(e) le : 23 Nov 2009 à 16:03
Localisation : Combs la ville (Seine et Marne)

Messagepar abertisch » 26 Nov 2009 à 16:29

et ajax dans tout ça ?!? :roll:
"Lotus, il n'y a qu'en rouleaux que ça fait pas mal au cul"
abertisch
Roi des posts
Roi des posts
 
Message(s) : 763
Inscrit(e) le : 25 Oct 2006 à 13:51
Localisation : Suisse

Messagepar broutzy » 26 Nov 2009 à 17:12

AlexandreV a écrit:
broutzy a écrit:
Michael DELIQUE a écrit:L'idéal serait de pouvoir exécuter mon agent à la place. Je ne vois pas comment faire en js sans perdre le documentcontext ?


Tu peux charger ton masque dans un frameset. Le frame qui affiche ton code fera une hauteur de 100% et l'autre une hauteur de zero.

Ensuite à l'aide d'une fonction js lors de l'appuie sur la touche entrée, tu appelles ton agent lotus script.

Mais pour que cela soit transparent, et que tu ne perdes pas ton contexte, tu fais s'exécuter dans le frame qui a une hauteur de zero.
Comme ca, l'agent s'exécute dans le frame "caché" et tu peux même faire du javascript dans ton agent qui pourra aller écrire directement dans ta frame principale...


Merci pour les pistes, en ajax ça le ferait aussi.
Bon la c'était pour hier, j'implémenterais ça la prochaine fois.

Si je regarde le code généré pour mon bouton (celui qui lance l'agent) j'obtiens :
Code : Tout sélectionner
<input type="button" value="Rechercher" class="bouton" onclick="return _doClick('C12576540046A9D3.50ca83e43bcc24edc1257651002e1674/$Body/0.2CDE', this, null)">


Je me demandais si on pouvait reproduire ça de manière simple ? :idea:

A+
Cordialement. :)

Pascal Broutèle
Groupe D&O
Avatar de l’utilisateur
broutzy
Posteur néophyte
Posteur néophyte
 
Message(s) : 51
Inscrit(e) le : 10 Jan 2005 à 11:23
Localisation : Paris

Messagepar Aquanotes » 26 Nov 2009 à 21:36

Le plus simple tu mets
Code : Tout sélectionner
return false
dans l'evt onsubmit, mais bon c'est pas génial.

Maintenant une url de type tonAgentdeRecherche?OpenAgent dans le $$return ne fonctionne pas ?
*** une 3ème année sans nicotine qui démarre :danse001: ***
Aquanotes
Posteur habitué
Posteur habitué
 
Message(s) : 295
Inscrit(e) le : 16 Déc 2004 à 12:13
Localisation : Niort

Messagepar abertisch » 27 Nov 2009 à 08:44

broutzy a écrit:
AlexandreV a écrit:
broutzy a écrit:
Michael DELIQUE a écrit:L'idéal serait de pouvoir exécuter mon agent à la place. Je ne vois pas comment faire en js sans perdre le documentcontext ?


Tu peux charger ton masque dans un frameset. Le frame qui affiche ton code fera une hauteur de 100% et l'autre une hauteur de zero.

Ensuite à l'aide d'une fonction js lors de l'appuie sur la touche entrée, tu appelles ton agent lotus script.

Mais pour que cela soit transparent, et que tu ne perdes pas ton contexte, tu fais s'exécuter dans le frame qui a une hauteur de zero.
Comme ca, l'agent s'exécute dans le frame "caché" et tu peux même faire du javascript dans ton agent qui pourra aller écrire directement dans ta frame principale...


Merci pour les pistes, en ajax ça le ferait aussi.
Bon la c'était pour hier, j'implémenterais ça la prochaine fois.

Si je regarde le code généré pour mon bouton (celui qui lance l'agent) j'obtiens :
Code : Tout sélectionner
<input>


Je me demandais si on pouvait reproduire ça de manière simple ? :idea:

A+


Ouais lotus aime bien rajouter sa couche....d'inutilité :lol: :lol:

Tu peux faire quelque chose dans ce gout-là avec un bouton personalisé :

Code : Tout sélectionner
function submit(){
document.forms[0].action='/mabase/monagent
document.forms[0].name='toto'
document.forms[0].id='toto'
document.forms[0].method='post'
document.forms[0].submit()
}


Mais je reste persuadé que tu n'as pas besoin de faire un submit pour faire une recherche dans une base notes.

un bon coup d'ajax et hop finit le submit. :wink:
"Lotus, il n'y a qu'en rouleaux que ça fait pas mal au cul"
abertisch
Roi des posts
Roi des posts
 
Message(s) : 763
Inscrit(e) le : 25 Oct 2006 à 13:51
Localisation : Suisse


Retour vers Développement

cron