J'ai le problème suivant en html (je débute):
J'ai 2 zones de saisies (texte) et je voudrais les mémoriser
respectivement dans 2 variables, var1 et var2 ( que je traiterai par la
suite), en cliquant sur un bouton.
Je voudrais en plus, que le contenu par défaut de la zone de saisie (à
l'ouverture de la page) change à chaque fois, pour y présenter la
dernière validation effectuée.
J'ai commencé par ceci, mais je ne sais plus comment continuer:
---------------------------------
<SCRIPT LANGUAGE="VBScript">
Sub Bouton1_OnClick
' Là, je ne sais pas quoi mettre
End Sub
</SCRIPT>
</HEAD>
<BODY>
<FORM>
Saisissez ici la Variable 1:
<INPUT type="text" name="saisie1" value="là, je ne sais pas quoi mettre"
SIZE="60"><br>
Saisissez ici la Variable 2:
<INPUT type="text" name="saisie2" value="là, je ne sais pas quoi
mettre" SIZE="60"><br>
<INPUT NAME="Bouton1" TYPE="BUTTON" VALUE="Valider">
</FORM>
</BODY>
-------------------------------
Cordialement
Sympatix
Attention, symp...@tototele2.fr est mon adresse antispam non valide.
Pour me répondre, supprimer "toto" merci.
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.558 / Virus Database: 350 - Release Date: 02/01/2004
Bon, pour la 2e partie de mon problème, ça m'a l'air plus costaud. Il
faudrait générer un fichier temp, genre vbs, qui inscrirait à chaque
fois la nouvelle valeur par défaut des mes 2 variables...un truc dans le
genre ?
---------------------------------
<HTML>
<SCRIPT LANGUAGE="VBScript">
Sub Bouton1_OnClick
var1 = document.VAR.saisie1.value
var2 = document.VAR.saisie2.value
msgbox var1
msgbox var2
End Sub
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME ="VAR">
Saisissez ici la Variable 1:
<INPUT type="text" name="saisie1" value="il fait beau"
SIZE="60"><br>
Saisissez ici la Variable 2:
<INPUT type="text" name="saisie2" value="et chaud" SIZE="60"><br>
<INPUT NAME="Bouton1" TYPE="BUTTON" VALUE="Valider">
</FORM>
</BODY>
</HTML>
Pour faire ça dans un HTA il y a plusieures méthodes.
Le choix de la méthode dépendra à la fois de la nature du projet et des restrictions propres à chaque méthode (taille de stockage,
sécurité, ...).
Classiquement on peut soit :
1-stocker la valeur dans le registre à l'aide par exemple des méthodes de l'objet WScript.Shell de WSH dédiées au registre
(RegWrite, RegDelete et RegRead):
http://msdn.microsoft.com/library/en-us/script56/html/wsoriWshShellObjectPropMeth.asp
2-soit stocker la valeur dans un fichier à l'aide par exemple des méthodes de création et lecture de fichiers du File System Object
(essentiellement CreateTextFile et OpenTextFile) :
http://msdn.microsoft.com/library/en-us/script56/html/jsoriFileSystemObjectMethods.asp
3-sous Windows 2000/XP vous pouvez aussi envisager de stocker la valeur dans une variable d'environnement à l'aide par exemple de
l'objet WshEnvironment de WSH:
http://msdn.microsoft.com/library/en-us/script56/html/wsObjWshEnvironment.asp
(Sous Windows 9x seul le type de variable Process est dipsonible rendant cette méthode non envisageable sous ces OS).
Sinon :
4- il peut être intérressant d'envisager le comportement userData (IE5 et suppérieur) qui permet de stocker des données dans un
espace XML (en fait un fichier XML situé dans un sous répertoire du répertoire UserData de l'utilisateur en cours):
http://msdn.microsoft.com/workshop/author/behaviors/reference/behaviors/userdata.asp
Comparée aux autres méthodes celle-ci dipsose de la possibilité définir la valadité de la valeur dans le temps.
Elle offre aussi l'avantage de pouvoir être utilisée dans les contextes HTA et HTML (les autres méthodes exposées ici ayant recours
à l'utilisation de contrôles ActiveX non sûrs pour la navigation, dans un contexte HTML, elles entraînenraient l'apparition de
boîtes de dialogues relatives à la sécurité IE chez le client).
Afin d'illustrer ces 4 méthodes voici des exemples (basés sur la strucure que vous proposiez) de HTA en VBS (+ l fichier HTM pour
illustrer le point 4) :
[Pour faire les tests, modifiez des valeurs puis fermez et réouvrez le document pour voir si elle sont conservées]
1- http://automation.eu.tf/Conserver_Donnees_Registre_VBS.HTA (voir code en fin de message)
2- http://automation.eu.tf/Conserver_Donnees_FSO_VBS.HTA (voir code en fin de message)
3- http://automation.eu.tf/Conserver_Donnees_Environnement_VBS.HTA (voir code en fin de message)
4- http://automation.eu.tf/Conserver_Donnees_userData_VBS.HTA (voir code en fin de message)
http://automation.eu.tf/Conserver_Donnees_userData_VBS.HTM
Amicalement,
Jean - JMST
Belgium
1-
<!---8<---Conserver_Donnees_Registre_VBS.HTA---Jean-JMST--->
<script defer language="vbscript">
Dim valeurs_defaut(1)
valeurs_defaut(0)="Bonne"
valeurs_defaut(1)="Année"
clereg="HKEY_CURRENT_USER\MesValeurs\"
Formater_Elements
Initialisation
Sub Initialisation
With CreateObject("WScript.Shell")
On Error Resume Next
saisie1.value=.RegRead(clereg&"valeur1")
If Err Then
.RegWrite clereg&"valeur1",valeurs_defaut(0)
saisie1.value=.RegRead(clereg&"valeur1")
End If
saisie2.value=.RegRead(clereg&"valeur2")
If Err Then
.RegWrite clereg&"valeur2",valeurs_defaut(1)
saisie2.value=.RegRead(clereg&"valeur2")
End If
On Error GoTo 0
End With
End Sub
Sub Formater_Elements
saisie1.size="60"
saisie2.size="60"
bouton1.value="Valider"
bouton2.value="Remettre par défaut"
bouton3.value="Supprimer la clef de registre de test"
bouton1.onclick=GetRef("Sauver")
bouton2.onclick=GetRef("Restaurer")
bouton3.onclick=GetRef("Supprimer")
End Sub
Sub Sauver
With CreateObject("WScript.Shell")
.RegWrite clereg&"valeur1",saisie1.value
.RegWrite clereg&"valeur2",saisie2.value
End With
End Sub
Sub Restaurer
CreateObject("WScript.Shell")._
RegDelete(clereg)
Initialisation
End Sub
Sub Supprimer
CreateObject("WScript.Shell")._
RegDelete(clereg)
Close
End Sub
</script>
Saisissez ici la Variable 1:
<input id="saisie1"><br>
Saisissez ici la Variable 2:
<input id="saisie2"><br>
<input id="bouton1" type="button">
<input id="bouton2" type="button"><br><br>
<input id="bouton3" type="button"><br>
Cliquez sur ce bouton lorsque vous avez terminé les tests.
<!---8<---Conserver_Donnees_Registre_VBS.HTA---Jean-JMST--->
2-
<!---8<---Conserver_Donnees_FSO_VBS.HTA---Jean-JMST--->
<script defer language="vbscript">
Dim valeurs_defaut(1)
valeurs_defaut(0)="Bonne"
valeurs_defaut(1)="Année"
Formater_Elements
Initialisation
Sub Initialisation
With CreateObject("Scripting.FileSystemObject")
If Not .FileExists("stockage.txt") Then _
.CreateTextFile("stockage.txt")_
.Write(valeurs_defaut(0)&VbNewLine&valeurs_defaut(1))
With .OpenTextFile("stockage.txt")
saisie1.value=.ReadLine
If Not .AtEndOfStream Then
saisie2.value=.ReadLine
Else
saisie2.value=""
End If
.Close
End With
End With
End Sub
Sub Formater_Elements
saisie1.size="60"
saisie2.size="60"
With bouton1
.value="Valider"
.onclick=GetRef("Sauver")
End With
With bouton2
.value="Remettre par défaut"
.onclick=GetRef("Restaurer")
End With
With bouton3
.value="Supprimer le fichier stockage.txt"
.onclick=GetRef("Supprimer")
End With
End Sub
Sub Sauver
CreateObject("Scripting.FileSystemObject")._
OpenTextFile("stockage.txt",2,True)._
Write(saisie1.value&VbNewLine&saisie2.value)
End Sub
Sub Restaurer
Supprimer
Initialisation
End Sub
Sub Supprimer
CreateObject("Scripting.FileSystemObject")._
DeleteFile("stockage.txt")
End Sub
</script>
Saisissez ici la Variable 1:
<input id="saisie1"><br>
Saisissez ici la Variable 2:
<input id="saisie2"><br>
<input id="bouton1" type="button">
<input id="bouton2" type="button"><br><br>
<input id="bouton3" type="button"><br>
Cliquez sur ce bouton lorsque vous avez terminé les tests.
<!---8<---Conserver_Donnees_FSO_VBS.HTA---Jean-JMST--->
3-
<!---8<---Conserver_Donnees_Environnement_VBS.HTA---Jean-JMST--->
<script defer language="vbscript">
Dim valeurs_defaut(1)
valeurs_defaut(0)="Bonne"
valeurs_defaut(1)="Année"
Formater_Elements
Initialisation
Sub Initialisation
If Lire_Variable("valeur1")="" Then
Creer_Variable "valeur1",valeurs_defaut(0)
End If
If Lire_Variable("valeur2")="" Then
Creer_Variable "valeur2",valeurs_defaut(1)
End If
saisie1.value=Lire_Variable("valeur1")
saisie2.value=Lire_Variable("valeur2")
End Sub
Sub Creer_Variable(nom,valeur)
CreateObject("WScript.Shell")_
.Environment("USER")(nom)=valeur
End Sub
Function Lire_Variable(nom)
Lire_Variable=CreateObject("WScript.Shell")_
.Environment("USER")(nom)
End Function
Sub Formater_Elements
saisie1.size="60"
saisie2.size="60"
With bouton1
.value="Valider"
.onclick=GetRef("Sauver")
End With
With bouton2
.value="Remettre par défaut"
.onclick=GetRef("Restaurer")
End With
With bouton3
.value="Supprimer les variables"
.onclick=GetRef("Supprimer_Variables")
End With
End Sub
Sub Restaurer
Supprimer_Variables
Initialisation
End Sub
Sub Sauver
Creer_Variable "valeur1",saisie1.value
Creer_Variable "valeur2",saisie2.value
End Sub
Sub Supprimer_Variables
Creer_Variable "valeur1",""
Creer_Variable "valeur2",""
End Sub
</script>
Saisissez ici la Variable 1:
<input id="saisie1"><br>
Saisissez ici la Variable 2:
<input id="saisie2"><br>
<input id="bouton1" type="button">
<input id="bouton2" type="button"><br><br>
<input id="bouton3" type="button"><br>
Cliquez sur ce bouton lorsque vous avez terminé les tests.
<!---8<---Conserver_Donnees_Environnement_VBS.HTA---Jean-JMST--->
4-
<!---8<---Conserver_Donnees_userData_VBS.HTA---Jean-JMST--->
<script defer language='jscript'>
/*----------------------------------------------*
JScript disposant de méthodes "dates" permettant
l'unité milliseconde et d'une fonction de conversion
de date au format UTC (nécessaire pour la propriété
"expires" de userData) cette partie du code sera réalisée
en JScript plutôt qu'en VBScript.
*------------------------------------------------*/
function Mettre_Expiration(msec){
with(new Date){
setMilliseconds(getMilliseconds()+parseInt(msec))
stockage.expires=toUTCString()
}
}
</script>
<script defer language="vbscript">
Formater_Elements
stockage.addBehavior("#default#userData")
Charger saisie1,"valeur1"
Charger saisie2,"valeur2"
Sub Formater_Elements
With saisie1
.value="Bonne"
.size="60"
End With
With saisie2
.value="Année"
.size="60"
End With
With expiration
.value=""
.size="20"
End With
With bouton1
.value="Valider"
.onclick=GetRef("Stocker")
End With
With bouton2
.value="Remettre par défaut"
.onclick=GetRef("Remettre_Defaut")
End With
End Sub
Sub Stocker
Sauver saisie1,"valeur1"
Sauver saisie2,"valeur2"
End Sub
Sub Remettre_Defaut
expiration.value="0"
Sauver saisie1,"valeur1"
saisie1.value="Bonne"
saisie2.value="Année"
expiration.value=""
End Sub
Sub Sauver(objet,quoi)
With stockage
If Not expiration.value="" Then
If IsNumeric(expiration.value) Then
Mettre_Expiration(expiration.value)
Else
MsgBox "La valeur doit être numérique"
Exit Sub
End If
End If
.setAttribute quoi,objet.value
.save "rucheXML"
End With
End Sub
Sub Charger(objet,quoi)
With stockage
.load "rucheXML"
If Not IsNull(.getAttribute(quoi)) Then _
objet.value=.getAttribute(quoi)
End With
End Sub
</script>
<div id=stockage></div>
Saisissez ici la Variable 1:
<input id="saisie1"><br>
Saisissez ici la Variable 2:
<input id="saisie2"><br>
Variable1 et Variable2 expirent dans
<input id="expiration"> MilliSecondes<br>
<input id="bouton1" type="button">
<input id="bouton2" type="button">
<!---8<---Conserver_Donnees_userData_VBS.HTA---Jean-JMST--->
"sympatix" <symp...@tototele2.fr> a écrit dans le message de news:Oesz1m60...@TK2MSFTNGP12.phx.gbl...
Merci pour tout ces exemples, je teste, et je vous tiens au courant !