Bonjour le forum,
J'ai un tableau qui se compose de plusieurs bouton.
J'aurais voulu savoir si il était possible de mettre le nom du bouton sur lequel on vient de cliquer dans une variable ?
Merci d'avance pour votre aide.
bgs
Bonjour le forum,
J'ai un tableau qui se compose de plusieurs bouton.
J'aurais voulu savoir si il était possible de mettre le nom du bouton sur lequel on vient de cliquer dans une variable ?
Merci d'avance pour votre aide.
bgs
Re,
Le bouton sur lequel on vient de cliquer, il fait quoi comme action ?
Re,Envoyé par pc75
Désolé pour le peu d'information.
Voici le code du bouton :
voici la fonction qu'il appelle sur l'évènement on_click :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <td bgcolor="#0066cc"><input name="ba1PHARJ202" type="submit" id="ba1PHARJ202" value="Clôturer" onclick="cloturer()" /></td>
J'aurais voulu que le nom du bouton se mette ici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <SCRIPT LANGUAGE="Javascript"> <!-- function cloturer() { var x = confirm('Clôturer signifie que le document sera envoyé au secrétariat et que vous ne pourrez plus y apporter des modifications'); if(x == true) <% boutonmvd = {alert('Document envoyé au secrétariat, il est maintenant en read only'); } else { alert('aucune modification a été apportée, le document n est pas clôturé'); } } //--> </SCRIPT>
Tu crois que c'est possible ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part <% boutonmvd =
Merci pour tout.
bgs
plusieurs manière de faire.
Je pense que la plus simple et de modifier très légérement l'appel de la fonction ex
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 function cloturer(objSource) { var nomBt = objSource.name // le reste du code } //appel : <input name="ba1PHARJ202" type="submit" id="ba1PHARJ202" value="Clôturer" onclick="cloturer(this)" />
en procédant ainsi tu t'epargne de savoir quelle est le vavigateur, autrement dit comment sont géré les événements.
Tu peux aussi direcment passer le nom (appel : cloturer(this.name).
Mais de passer l'objét (par référence) ne prend pas plus de ressource, et permet d'avoir directment toutes les propriété de l'objet en question.
Re,
J'en déduits que tu veux alimenter une variable ASP en passanr par du javascript ?<% boutonmvd =
A priori, je ne pense pas que ce soit possible.
Mais ta fonction cloturer(), elle ne se limite pas à afficher un message ?
Elle ne fait rien d'autre ?
oups avait pas vu le <% boutonmvd =
si tu veus que utiliser une variable serveur, il fait que d'une manière ou d'une autre faire envoyer les donnés vers le serveur.
A quelle moment le serveur doit connaitre le bouton cliqué ?
dans ton extrait de code, il y a un traitement client
puis un tratement serveur, puis la suite du traitment client.
Est ce bien ce que tu veus Fare?
qu'apporte le traitement serveur au traitement client qui est sensé se dérouler apres ?
N'est il pas possible de faire d'abbord tous le traitement client, et ensuite le tratement serveur?
Re,
Oui, le but de cette manoeuvre est de récupérer le nom du bouton.J'en déduits que tu veux alimenter une variable ASP en passanr par du javascript ?
Quand le nom du bouton est récupéré, je peux aller dans la table access où se trouve une table contenant le nom de tous les boutons, et y mettre OK dans le champs d'à côté pour signaler que le bouton a été cliqué.
Bien sur, si on peut faire cela qu'avec de l'ASP, c'est encore mieux.
Ensuite, je dirai :
Si l'enregistrement (portant le nom du bouton) de la table est différent de rien, alors le bouton devient ou reste invisible ou inactif. Idem pour le bouton d'à côté.
C'est juste pour empêcher le Professeur de mettre à jour des cotes si il a cliqué sur le bouton "clôturer".
Je pourrais aussi mettre les enregistrements de la table Access en READ ONLY mais si ils voyent le bouton, ils voudront cliquer dessus.
La messagebox les préviens qu'ils ne pourront plus mettre à jour les cotes si il clique sur OUI.
Il y'a peut être un moyen plus simple.
Merci beaucoup pour ton aide.
bgs
Re,
Le code qui te permet d'enregistrer cette valeur dans ta base Access, il se trouve où ?Quand le nom du bouton est récupéré, je peux aller dans la table access où se trouve une table contenant le nom de tous les boutons, et y mettre OK dans le champs d'à côté pour signaler que le bouton a été cliqué.
Dans une autre page ASP ?
Merci pour ta réponse.Envoyé par Cpas2latarte
Au moment du clique, cela préviendra le Professeur qu'il ne pourra plus éditer ces cotes. J'aimerais aussi que le bouton devienne invisible ou que le lien soit retiré. Idem pour le bouton d'à côté.A quelle moment le serveur doit connaitre le bouton cliqué ?
Oui, j'espère ne pas me tromper mais quand le prof clic sur le bouton, un message apparaît, si il répond oui au message, la variable prend le nom du bouton, la table access se met à jour (avec update par exemple et on utilise le nom de la variable pour lui dire quel enregistrement mettre à jour). Ensuite le bouton devient innaccessible.dans ton extrait de code, il y a un traitement client
puis un tratement serveur, puis la suite du traitment client.
Est ce bien ce que tu veus Fare?
c'est idem pour moi.N'est il pas possible de faire d'abbord tous le traitement client, et ensuite le tratement serveur?
Merci pour ton aide.
bgs
Etant donné que je travaille par étpae, je voulais d'abord allimenter la variable et ensuite fair le code.Envoyé par pc75
On peut mélanger le code ASP et javascript je pense ?
Merci
bgs
on ne peut mélangé le code client du code serveur.
LE code serveur s'execute, puis envoi du texte au client.
LE client l'interprete alors. Cela pauet être du HTML, ou du JS.
donc le code client et serveur ne s'execute pas en même tempe.
pour faire ce que tu veus faire, il faut faire une sorte de mini uzine a gaz.
je m'explique.
1) sur un evenment client (click bouton)
début du traitement du client puis
-> envoi d'une formulaire vers le serveur au travers d'une frame caché ou innerframe caché.
fin du début du tratement client.
la page client est toujours affiché car c'est le iframe soumet la requête
2) tratement du serveur
le serveur récupére les infomatio envoie par l'iframe et les taites.
a l'isue du traitement le serveur génére du javascript qui devra d'executé automatiquement.
3) le résulat généré, et envoyé à l'iframe, une fois la page dans l'iframe chargé, le javascript généré par le serveur peut s'executé, et finir le traitement commencé.
a savoir un script dans l'iframe peux manipuler des element dans la page principale
si j'ose dire, c'est pas de la tarte ;o), mais cela à le mérite de fonctionner
Re,
Et dans ta page de mise à jour :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 <SCRIPT LANGUAGE="Javascript"> <!-- function cloturer(Bouton) { var x = confirm('Clôturer signifie que le document sera envoyé au secrétariat et que vous ne pourrez plus y apporter des modifications'); if(x == true) { alert('Document envoyé au secrétariat, il est maintenant en read only'); document.MonForm.txtBouton.value = Bouton; document.MonForm.action = "Maj.asp"; document.MonForm.submit(); } else { alert('aucune modification a été apportée, le document n est pas clôturé'); } } //--> </SCRIPT> ..... <form name="MonForm" method="Post"> <input type="hidden" name="txtBouton"> <td bgcolor="#0066cc"><input name="ba1PHARJ202" type="submit" id="ba1PHARJ202" value="Clotûrer" onclick="cloturer(this.name)" /></td> </form>
Maj.asp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 NomBouton = request.form("txtBouton") .....
je viens de lire un article; qui correspondrait à tes besoin.
Il s'agit d'AJAX.
isiblement cela permet de faire du client serveur,
d'invoquer le serveur à partir du client.
je pense que ton sénario cera possible avec ajax
(client -> serveur -> client)
je n'ai jammais utiliser, je pense qu'il fo voir sur le forum JS
si c'est ce que je pense, cela simplifie mon uzine a gaz ;o)
Re-salut PC75,
Mille fois merci pour ta réponse et désolé pour le retard de la mienne mais j'ai dû réparer un ordinateur dont l'alim était morte.
J'ai analysé ce que tu as écris et voici ce que j'ai fais :
J'ai donc inséré dans une cellule de mon tableau :
ça me donne un formulaire avec un bouton. J'ai nommé le formulaire "Cloture".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <form name="Cloture" method="Post"> <input type="hidden" name="txtBouton"> <td bgcolor="#0066cc"><input name="ba1PHARJ202" type="submit" id="ba1PHARJ202" value="Clotûrer" onclick="cloturer(this.name)" /></td> </form></td>
Ensuite j'ai ajouté ton script que voici :
J'ai changé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <SCRIPT LANGUAGE="Javascript"> <!-- function cloturer(Bouton) { var x = confirm('Clôturer signifie que le document sera envoyé au secrétariat et que vous ne pourrez plus y apporter des modifications'); if(x == true) { alert('Document envoyé au secrétariat, il est maintenant en read only'); document.Cloture.txtBouton.value = Bouton; document.Cloture.action = "Maj.asp"; document.Cloture.submit(); } else { alert('aucune modification a été apportée, le document n est pas clôturé'); } } //--> </SCRIPT>
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 document.MonForm.txtBouton.value = Bouton; document.MonForm.action = "Maj.asp"; document.MonForm.submit();
J'espère que j'ai bien fait.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 document.[b]Cloture[/b].txtBouton.value = Bouton; document.[b]Cloture[/b].action = "Maj.asp"; document.[b]Cloture[/b].submit();
J'ai créé une page Maj.asp avec le code :
Et quand je met :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <%NomBouton = request.form("txtBouton")%>
<% response.write(NomBouton)%>
j'obtiens bien le nom du bouton...
Je te tire donc encore une fois mon chapeau mon Ami, tu es vraiment très fort !
Demain matin, je vais essayer d'utiliser le code que tu m'avais passé pour la récup des cotes et l'utiliser pour le bouton, si ça marche pas, je reviendrai, si ça marche je reviendrai aussi, car depuis que je suis dans le flou, je me rend compte qu'être aidé est très important mais aider les autres ça l'est encore plus !
Merci pour tout et bonne soirée à toi Grand Maître.
bgs
Tout cela me semble bien compliqué pour simplement récupérer le nom d'un bouton... Ou alors je ne comprend pas
Si tu as :Tu peux récupérer recupérer sa valeur en faisant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <form name="form" method="post" action="page.asp"> <input type="text" name="txtfield" value="Hello"><br> <input type="submit" name="Action" value="Effacer"> <input type="submit" name="Action" value="Mettre à jour"> <input type="submit" name="Action" value="Ajouter"> </form>Ainsi, tu sais sur quoi la personne a appuyé et tu peux prendre des actions en conséquence
Code : Sélectionner tout - Visualiser dans une fenêtre à part UCASE(LEFT(request.form("Action"),4))Maintenant, si tu souhaites avertir l'utilisateur, tu ajoutes l'evenement onsubmit dans les propriétés de ton formulaire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT CASE UCASE(LEFT(request.form("Action"),4)) Case "EFFA" Case "METT" Case "AJOU" Case else End SelectLe "return" est important. Tu invoques donc une fonction javascript dans laquelle tu peux mettre
Code : Sélectionner tout - Visualiser dans une fenêtre à part <form name="form" method="post" action="page.asp" onSubmit="return check(this);">Finalement, comme tu enregistre ce Click dans une base, tu conditionnes l'affichage de ce boutons en fonction de sa valeur dans ta base de données.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 function check(form){ if (confirm('Vraiment?')){ form.submit(); } else{ return false; } }
Ainsi, tu evites les problèmes liés à la desactivation de l'execution des scripts sur le navigateur du client.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <%IF not boutonclique then%> <input type="submit" name="Action" value="Mettre à jour"> <%else response.write("Vous ne pouvez pas faire de mise à jour") end if%>
Bon, j'espère ne pas avoir compliqué le problème
A+
Bonjour Immobilis,
Très très intéressant ce que tu me propose !
Merci !
Je continue à utiliser la méthode de PC75 car pour la semaine prochaine je dois avoir fini mais sache qu'apèrs, je pourrai paufinner le tout et je regarderai quelle méthode est la plus facile et utile.
J'en profite pour te remercier Immobilis mais aussi pour remercie tous les bénévoles qui travaillent sur ces forums, sachez que sans vous, on ne serait peut être pas ce qu'on est !
Un remerciement tout spcéial à PC75 (pour son aide avec ASP et javascript)
Respect !
BGS
Je me permet de répondre à nouveau à Immobilis et non d'étditer mon message précédent.
J'ai testé ta méthode, elle est vraiment très intéressante et comme tu dis on évite la désactivation du javascript côté client.
En plus de ça, on travaille un peu plus en vbscript, language que je commence à connaître (grâce entre autre à PC75).
Je continue l'analyse et je vous dis quoi.
Très bon jeudi.
bgs
OK, sinon, tu n'est pas oblige de citer les précédentes réponses, ça alonge le post et il devient difficile à lire
Peux-tu re_éditer ta réponse un peu plus haut et retirer la citation?
Merci
C'est fait
Bonne journée à toi.
bgs
Re-bonjour Immobilis, bonjour le forum,
Après avoir testé ton code, je remarque une première petite chose :
Le code qui permet de récupérer les 4 premiers caractères du nom du bouton est :
et voici le code du formulaire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <%UCASE(LEFT(request.form("Action"),4))%>
Récupérer le nom du bouton et non sa valeur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <form name="form" method="post" action="immobilisUCASE.asp"> <p><span class="Style4">Analyse Pharmaceutique : Methodes spectroscopiques</span> <br> <input type="submit" name="Action" value="Consulter"> <input type="submit" name="Action" value="Mettre à jour"> <input type="submit" name="Action" value="Clôturer"> </p> <p><span class="Style4">Analyse Pharmaceutique : Methodes spectroscopiques</span> <br /> <input type="submit" name="Action2" value="Consulter" /> <input type="submit" name="Action2" value="Mettre à jour" /> <input type="submit" name="Action2" value="Clôturer" /> </p> </form>
name="Action2" et récupérer les 8 premiers caractères du nom et non de value ? donc action02 si je demande 8 caractères.
Merci d'avance pour l'aide.
bgs
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager