onclick ou oumousemove ?

Eléphanteau du PHP | 21 Messages

17 mars 2012, 11:18

Bonjour chers internautes,

Il existe plusieurs fonction du genre a onclick sur une input pour qu'un script s'exécute, il y a onmousemove aussi, mais dans tous les cas il faut interagir avec la balise. Existe t-il un fonction qui l'exécute automatiquement sans interaction ???

ex:
<input type="text" id="datepicker" name="pseudo" onmousemove="verifPseudo(this.value)">

Merci d'avance
Pourquoi faire simple quand on peut faire compliquer ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

17 mars 2012, 12:13

Il s'agit de javascript, non de php. Sujet déplacé dans le forum approprié :)

Et euh... je comprends absolument pas ce que tu veux faire...

Javascript permet de capturer de nombreux éléments : le déplacement de la souris (onMouseOver, onMouseOut, onMouseMove), le clic (onClick), le focus (onFocus), la perte de focus (onBlur), les touches pressés (onKeyPress, onKeyDown) ou relachées (onKeyUp) sur le clavier, ... Tu peux aussi lui demander des exécutions à interval régulier (setInterval) si tu ne veux pas attendre un événement particulier déclenché par l'utilisateur...

Dans ton cas, on peut supposer (d'après le nom du champ : pseudo) que c'est au moment où l'utilisateur quitte le champ (onBlur) que tu vas lancer ton test de vérification.. (nota : l'id est pas cohérent :))
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 21 Messages

17 mars 2012, 12:37

Oui effectivement, j'aurai du préciser :p

Enfaites quand on clique sur le champ, j'ai mis un mini calendrier qui s'ouvre pour sélectionner le jour, ensuite il vérifie si le jour est libre ou nom dans la bdd. Le nom " pseudo " car j'ai pomper le code sur le net que j'ai adapter !

Mon problème est que quand on sélectionne le jour le curseur ce trouve deja loin du champ, du coup si on sais pas qu'il faut survoler le champs pour que la fonction s'adapte ça peut causer quelque problème. Il faudrait que ça s'execute automatiquement quoiqu'il arrive xD

En tout cas merci de ta réponse détailles et de l'intérêt que tu as porter a ma requête !
Pourquoi faire simple quand on peut faire compliquer ?

Mammouth du PHP | 2278 Messages

17 mars 2012, 14:31

Mais, qu'est-ce qui déclenche le calendrier? La fonction VerifiePseudo()?
C'est vrai que si on avait des noms et des id qui correspondent un peu à ce que font les choses, ça rendrait service.
cf :
javascript-ajax/datepicker-jquery-francais-t261541.html
ou
http://www.triconsole.com/php/calendar_datepicker.php
et Gargle avec recheche sur datepicker...
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphant du PHP | 69 Messages

18 mars 2012, 05:03

Tu peux utiliser Jquery pour l'ouverture de calandrier c'est beaucoup plus facile étant donné que le code est déja fait ;)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

18 mars 2012, 12:10

Mon problème est que quand on sélectionne le jour le curseur ce trouve deja loin du champ, du coup si on sais pas qu'il faut survoler le champs pour que la fonction s'adapte ça peut causer quelque problème. Il faudrait que ça s'execute automatiquement quoiqu'il arrive xD
En fait pour être sur qu'il s'exécute, il te faudrait modifier le code de ton datepicker, pour que lorsqu'il alimente ce champ, il exécute ton contrôle juste après... comme ça, peu importe ce que fait l'utilisateur ensuite avec sa souris, s'il sélectionne une valeur tu contrôle :)

Attention également si l'utilisateur peut saisir une valeur sans la sélectionner, faut aussi faire ton contrôle...

Après, tu peux aussi effectuer ce contrôle uniquement lorsque l'utilisateur va envoyer le formulaire, quelque soit le mode de saisie, ton contrôle regarde le résultat au moment ou l'utilisateur veut l'enregistrer...


Ps : et effectivement, faudra songer à renommer tes champs parce que c'est pas clair, et crois moi que si tu dois repasser dessus dans 6 mois pour le maintenir ou le corriger, tu vas t'arracher les cheveux ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...