[Résolu/Solved]Manialink> Eviter d'appuyer sur "Ok" pour env

Parlez de tout ce qui est lié à Maniaplanet.

Moderator: French Moderator

TheBigMiike
Posts: 1256
Joined: 06 Mar 2013, 16:12
Location: Vendée | France
Contact:

[Résolu/Solved]Manialink> Eviter d'appuyer sur "Ok" pour env

Post by TheBigMiike »

Bonsoir :)

Je suis en train de construire un manialink actuellement et j'ai besoin d'une petite aide concernant l'envoi d'un formulaire.

Voila, j'ai un champ de recherche avec un bouton de recherche pour envoyer la recherche . Le problème c'est que l'utilisateur doit obligatoirement appuyer sur ce bouton pour envoyer la recherche et j'aimerai qu'un simple "Entrer" lance cette recherche sans passer par la case bouton. ;)

Quelqu'un a t'il une idée ou il faut obligatoirement appuyer sur ce fichu bouton :roll:
Last edited by TheBigMiike on 14 Apr 2015, 14:12, edited 1 time in total.
Image Image
User avatar
TMarc
Posts: 15255
Joined: 05 Apr 2011, 19:10
Location: Europe
Contact:

Re: Manialink> Eviter d'appuyer sur "Ok" pour envoyer un for

Post by TMarc »

Puisque ManiaLink est basé sur la technologie HTML, je pense qu'il n'y a aucune autre solution.
Ce "fichu" bouton cause l'action "POST" avec les données entrées dans le formulaire.
User avatar
Nerpson
Translator
Translator
Posts: 1554
Joined: 27 Sep 2013, 18:02
Location: France
Contact:

Re: Manialink> Eviter d'appuyer sur "Ok" pour envoyer un for

Post by Nerpson »

Cela doit être possible en utilisant du ManiaScript.
ImageImageImageImage
TheBigMiike
Posts: 1256
Joined: 06 Mar 2013, 16:12
Location: Vendée | France
Contact:

Re: Manialink> Eviter d'appuyer sur "Ok" pour envoyer un for

Post by TheBigMiike »

TMarc wrote:Puisque ManiaLink est basé sur la technologie HTML, je pense qu'il n'y a aucune autre solution.
Ce "fichu" bouton cause l'action "POST" avec les données entrées dans le formulaire.
C'est juste dommage car la personne doit obligatoirement cliquer 2 fois sur le bouton pour lancer la recherche (une fois pour enlever le curseur du champ et une autre pour envoyer les données ), ce n'est qu'un petit détail mais c'est pas top :(
Nerpson wrote:Cela doit être possible en utilisant du ManiaScript.
As-tu une idée comment le faire en ManiaScript ? ;) Je n'ai jamais fait de ManiaScript.
Image Image
User avatar
TMarc
Posts: 15255
Joined: 05 Apr 2011, 19:10
Location: Europe
Contact:

Re: Manialink> Eviter d'appuyer sur "Ok" pour envoyer un for

Post by TMarc »

en effet, il faut appuyer sur la touche entrée pour entrer le texte (pour quitter le mode d'édition), mais cela a toujours été comme-ça :?
TheBigMiike
Posts: 1256
Joined: 06 Mar 2013, 16:12
Location: Vendée | France
Contact:

Re: Manialink> Eviter d'appuyer sur "Ok" pour envoyer un for

Post by TheBigMiike »

Hmm... il existe une fonction en ManiaScript pour faire une sorte de redirection ? C'est à dire une fois que l'utilisateur fait "Entrer", un envoie se fait en renvoyant vers http://monbeautifulsite.tld/ml/recherch ... ejaienvoye ?
Image Image
User avatar
Eole
Nadeo
Nadeo
Posts: 1265
Joined: 26 Apr 2011, 21:08

Re: Manialink> Eviter d'appuyer sur "Ok" pour envoyer un for

Post by Eole »

La fonction OpenLink() ? Sinon y'a l'API HTTP qui permet de faire des requêtes GET/POST mais pas de redirection.
Contribute to the ManiaPlanet documentation on GitHub
A question about ManiaScript? Ask it here!
TheBigMiike
Posts: 1256
Joined: 06 Mar 2013, 16:12
Location: Vendée | France
Contact:

Re: Manialink> Eviter d'appuyer sur "Ok" pour envoyer un for

Post by TheBigMiike »

merci Eole pour la réponse :thx: mais je suis tellement une quiche en ManiaScript que j'ai encore besoin de votre aide (Eole ou la communauté)

Voici la portion de code que j'ai repris du forum FunTrackers et que j'ai adapté en fonction d'exemples trouvé sur le web. Et ça donne pas grand chose :

Code: Select all

<script>
	<!--
	while(True) {
	    declare Entry_search	<=> (Page.GetFirstChild("e_search") as CMIEntry);

	    foreach(Event in PendingEvents) {
	        if (Event.Type == CMIEvent::Type::KeyPress) {
	            CMIScript::OpenLink("http://monsite.tld/ml/search?q=Entry_search.value", manialink);
	        }
	    }
	}
	-->
</script>
Déja la ligne avec le declare je sais pas trop ce que ça fait réellement... mais j'ai copité bêtement :lol: .
- Entry_search est une variable ?
- C'est une sorte de classe CMIEntry ? Que vient-elle faire là ?

Au départ je pensais que Entry_search était une sorte d'objet car j'ai vu qu'on pouvait obtenir la valeur du champ avec Entry_search.Value mais ce qui vient après les <=> me perturbe ._.

Et puis le code ne fonctionne pas du tout...
CMIScript je l'ai pris dans la documentation disponible sur uaseco et CMIEntry aussi
Déja je comprends pas comment je vais lui faire comprendre qu'il faut ouvrir le manialink uniquement quand on presse Entrer dans le champ

Existe-t'il un Dieu du ManiaScript pouvant m'aider ? ;)
Image Image
User avatar
spaii
Posts: 1075
Joined: 19 Jun 2010, 00:04
Location: Rémy - France
Contact:

Re: Manialink> Eviter d'appuyer sur "Ok" pour envoyer un for

Post by spaii »

Salut TheBigMike,

Exemple :

Code: Select all

<manialink version="2">

<entry id="SearchEntry" default="Search..." posn="0 0" sizen="50" scriptevents="1" />

<script><!--
#Include "TextLib"

main() {
	declare SearchEntry <=> (Page.GetFirstChild("SearchEntry") as CMlEntry);
	declare LastEntryValue = SearchEntry.Value;
	
	while(True) {
		yield;
		foreach(Event in PendingEvents)
		{
			if (Event.Type == CMlEvent::Type::EntrySubmit && Event.ControlId == "SearchEntry" && LastEntryValue != SearchEntry.Value)
			{
				LastEntryValue = SearchEntry.Value;
				log(SearchEntry.Value);
				OpenLink("http://mydomain.net/myform.php?searchedvalue="^URLEncode(SearchEntry.Value), ::LinkType::Goto);				
			}
		}
	}
}
--></script>
</manialink>
Il suffit de changer l'url dans OpenLink.
C'est une solution simple mais fonctionnelle.
TheBigMiike
Posts: 1256
Joined: 06 Mar 2013, 16:12
Location: Vendée | France
Contact:

Re: Manialink> Eviter d'appuyer sur "Ok" pour envoyer un for

Post by TheBigMiike »

Salut spaii et merci de ton aide :thx:
Ton code est fonctionnel mais quand je l'adapte à mon projet il ne marche plus...

Pourtant ton code fonctionne bien, je l'ai testé à part mais quand je l'adapte à mon champ, ça ne fonctionne plus.
Les <frame></frame> pourraient-ils perturber le fonctionnement ? Qu'est-ce qui pourrait perturber dans un code le fonctionnement du ManiaScript ?

Voici le code :

Partie XML :

Code: Select all

<frame posn="-70 60 1" id="f_content">
		<frame id="f_search">
			<entry id="e_search" posn="0 -2 1" valign="center2" sizen="170 6" opacity="0.4" bgcolor="FFFF" scriptevents="1"/>
			<!-- <quad id="submitSearchEntry" posn="164 -2 3" style="Icons64x64_1" substyle="Maximize" valign="center2" sizen="6 6" opacity="1" bgcolor="FFFF" manialink="ZeLienIci"/> -->
		</frame>
	<!-- Ici est le contenu -->
	</frame>
Partie ManiaScript :

Code: Select all

<script><!--
	#Include "TextLib"
	
	main() {
	   declare SearchEntry <=> (Page.GetFirstChild("e_search") as CMlEntry);
	   declare LastEntryValue = SearchEntry.Value;
	   
	   while(True) {
	      yield;
	      foreach(Event in PendingEvents)
	      {
	         if (Event.Type == CMlEvent::Type::EntrySubmit && Event.ControlId == "e_search" && LastEntryValue != SearchEntry.Value)
	         {
	            LastEntryValue = SearchEntry.Value;
	            log(SearchEntry.Value);
	            OpenLink("http://mydomain.net/myform.php?searchedvalue="^URLEncode(SearchEntry.Value), ::LinkType::GoTo);            
	         }
	      }
	   }
	}
	--></script>
Encore une fois, désolé de devoir vous demander de l'aide encore une fois mais Mike est nul en ManiaScript :( J'aurais jamais pensé galérer autant avec du ManiaScript.
Je cherche en attendant ;)
Image Image
Post Reply

Return to “Maniaplanet”

Who is online

Users browsing this forum: No registered users and 3 guests