begin process at 2012 05 27 07:22:39
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Formulaires

 > RÉCUPÉRER DONNÉES REQUEST.FORM OU ASPSMARTUPLOAD ?

RÉCUPÉRER DONNÉES REQUEST.FORM OU ASPSMARTUPLOAD ?


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Formulaires Classé sous :upload, aspsmartupload, data, données, multipart Niveau :Initié Date de création :23/12/2004 Vu :21 257

Auteur : matche

Ecrire un message privé
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 Description

Salut à tous !
J'ai longtemps cherché comment récupérer des champs provenant soit d'un formulaire contenant des fichiers (donc envoyé en ENCTYPE="multipart/form-data"), soit d'un formulaire "normal" (utile si on utilise par exemple la même page pour afficher une liste de données correspondant à des critères de recherches, pour valider la modification d'une donnée, la supprimer,...). Comment savoir quand utiliser request.form et aspsmartupload ?

Voila ma solution... Peut être pas la meilleure, mais elle me fait gagner pas mal de temps maintenant !
Il suffit de récupérer toutes les données en début de page d'une façon où de l'autre suivant le cas, et de les enregistrer dans un dictionnaire. Ainsi, on pourra faire appel aux éléments de ce dictionnaire (et donc, les champs du formulaire précédent) dans toute la page, et ce, de la même façon que l'on vienne d'un formulaire envoyé en multipart/form-data ou normal.

Le code que je vous met gère en fait 2 dictionnaires différents :
Un pour les champs "courants" (attention, il enregistrera aussi les boutons comme étant des champs)
Et un autre pour mes critères de recherches : Dans mon cas, l'utilisateur accède à une liste qui correspond à ses critères (Tous les "name" des champs critères commencent par "rec_" afin de pouvoir par la suite les différencier des autres : ex <input type="text" name="rec_motclé">).
Il peut ensuite naviguer dans les résultats (modifier / ajouter / ...), et donc changer de pages et il retrouve la liste correspondant à ses critères de recherche (il faut donc afficher sur toutes les pages tout les champs des critères de recherche).
Mémoriser les champs de mes critères de recherches dans un dictionnaire séparé me permet donc d'afficher rapidement via une boucle tout mes critères dans des champs cachés.

Bon, je suis pas des plus excellent dans la rédaction, vous l'auerz surement remarqué, mais j'espère avoir été clair. Sinon, regardez le code, il est pas bien compliqué, ou posez moi des questions !
A bientôt
Matt

Source

  • <%
  • ' Script créé par matche
  • ' matthieu.dev@laposte.net
  • ' ************************
  • ' Script pour récupérer toutes les données
  • ' dans des dictionnaires
  • ' ************************
  • ' *********
  • ' Création des 2 dictionnaires
  • ' *********
  • Dim listForm ' Pour les champs "courants"
  • Set listForm = Server.CreateObject("Scripting.Dictionary")
  • listForm.CompareMode = VBTextCompare ' => Pour ne pas faire de différence entre majuscule / minuscule
  • Dim listRec ' Pour les champs de recherche
  • Set listRec = Server.CreateObject("Scripting.Dictionary")
  • listRec.CompareMode = VBTextCompare ' => Pour ne pas faire de différence entre majuscule / minuscule
  • ' *********
  • ' Si les données proviennent d'un formulaire "normal"
  • ' On récupère toutes les données avec des request.Form
  • ' *********
  • if left(request.ServerVariables("CONTENT_TYPE"),11) = "application" then
  • For Each Champ in Request.Form
  • ' Récupère dans un dictionnaire listRec les éléments correspondant aux critères de recherche
  • if left(Champ, 4) = "rec_" then
  • listRec.Add Champ, Request.Form(Champ)
  • else
  • ' et dans un autre dictinnaire les autres éléments
  • listForm.Add Champ, Request.Form(Champ)
  • end if
  • Next
  • ' *********
  • ' Sinon, on vient d'une page qui envoi un fichier
  • ' On récupère toutes les données avec le composant aspsmartupload
  • ' *********
  • elseif left(request.ServerVariables("CONTENT_TYPE"),9) = "multipart" then
  • ' Mise en place du composant
  • Dim mySmartUpload
  • Dim file
  • Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
  • mySmartUpload.DenyPhysicalPath = True
  • mySmartUpload.MaxFileSize = 2097152
  • mySmartUpload.Upload
  • ' récupération des champs dans les 2 dictionnaires
  • For each item In mySmartUpload.Form
  • if left(item, 4) = "rec_" then
  • listRec.Add item, mySmartUpload.Form(item)
  • else
  • listForm.Add item, mySmartUpload.Form(item)
  • end if
  • Next
  • end if
  • ' ************************
  • ' Pour pouvoir ensuite récupérer les éléments du dictionnaire
  • ' Sur la page
  • ' ************************
  • titre = listForm("nom_du_champ")
  • ' ************************
  • ' Agir sur les fichers
  • ' ************************
  • For each file In mySmartUpload.Files
  • ...
  • next
  • ' ************************
  • ' Et boucle qui permet d'afficher les champs cachés de tout
  • ' les critères de recherche
  • ' ************************
  • akeys = listRec.Keys
  • aitem = listRec.Items
  • For i = 0 To listRec.Count - 1%>
  • <input type="hidden" name="<%=akeys(i)%>" value="<%=aitem(i)%>">
  • <%next
  • %>
<%
' Script créé par matche
' matthieu.dev@laposte.net

'  ************************
' Script pour récupérer toutes les données 
' dans des dictionnaires
'  ************************


'  *********
' Création des 2 dictionnaires
'  *********
Dim listForm ' Pour les champs "courants"
Set listForm = Server.CreateObject("Scripting.Dictionary")
listForm.CompareMode = VBTextCompare ' => Pour ne pas faire de différence entre majuscule / minuscule

Dim listRec ' Pour les champs de recherche
Set listRec = Server.CreateObject("Scripting.Dictionary")
listRec.CompareMode = VBTextCompare ' => Pour ne pas faire de différence entre majuscule / minuscule

'  *********
' Si les données proviennent d'un formulaire "normal"
' On récupère toutes les données avec des request.Form
'  *********
if left(request.ServerVariables("CONTENT_TYPE"),11) = "application" then 

     For Each Champ in Request.Form

' Récupère dans un dictionnaire listRec les éléments correspondant aux critères de recherche
        if left(Champ, 4) = "rec_" then 
            listRec.Add Champ, Request.Form(Champ)
        else
' et dans un autre dictinnaire les autres éléments
            listForm.Add Champ, Request.Form(Champ)
        end if
    Next

'  *********
' Sinon, on vient d'une page qui envoi un fichier
' On récupère toutes les données avec le composant aspsmartupload 
'  *********
elseif left(request.ServerVariables("CONTENT_TYPE"),9) = "multipart" then
' Mise en place du composant
    Dim mySmartUpload
    Dim file
    Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
    mySmartUpload.DenyPhysicalPath = True
    mySmartUpload.MaxFileSize = 2097152
    mySmartUpload.Upload

' récupération des champs dans les 2 dictionnaires
    For each item In mySmartUpload.Form
        if left(item, 4) = "rec_" then 
            listRec.Add item, mySmartUpload.Form(item)
        else
            listForm.Add item, mySmartUpload.Form(item)
        end if
    Next
end if



'  ************************
' Pour pouvoir ensuite récupérer les éléments du dictionnaire
' Sur la page
'  ************************
titre = listForm("nom_du_champ")

'  ************************
' Agir sur les fichers
'  ************************
For each file In mySmartUpload.Files
    ...
next


'  ************************
' Et boucle qui permet d'afficher les champs cachés de tout
' les critères de recherche
'  ************************
akeys = listRec.Keys
aitem = listRec.Items
For i = 0 To listRec.Count - 1%>
<input type="hidden" name="<%=akeys(i)%>" value="<%=aitem(i)%>">
<%next
%>

 Conclusion

Pour toutes questions, n'hésitez pas à m'envoyer un mail


 Sources du même auteur

Source avec Zip AFFICHER / MASQUER LES COLONNES D'UN TABLEAU SANS RECHARGEME...

 Sources de la même categorie

Source .NET (Dotnet) COMMENT FORMATER LE NOMBRE DE CARACTÈRES D'UN COLONNE DANS U... par PascalCmoa
Source avec une capture Source .NET (Dotnet) AJOUTER UNE IMAGE À UN BOUTON par PascalCmoa
Source avec Zip Source avec une capture Source .NET (Dotnet) UPLOADER PLUSIEURS FICHIERS AVEC BARRE DE PROGRESSION AJAX par clemox
Source avec Zip Source .NET (Dotnet) DATAGRID AVEC RECHERCHE ALPHABÉTIQUE par gatita_dev
Source avec Zip Source avec une capture Source .NET (Dotnet) IMAGE ANTI-BOT ET VALIDATION DE FORMULAIRES par badrbadr

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) UPLOAD FILE par bensoft2006
Source .NET (Dotnet) IMPORTER UN FICHIER EXCEL DEPUIS UN POSTE ET L'AJOUTER SUR L... par jseblavoie
Source avec Zip Source avec une capture Source .NET (Dotnet) UPLOADER PLUSIEURS FICHIERS AVEC BARRE DE PROGRESSION AJAX par clemox
Source avec Zip Source .NET (Dotnet) INSERTION / RECUPERATION D'IMAGE STOCKEE DANS UNE DB MS SQL ... par jimmy69
TUTORIAL ASPSMARTUPLOAD (POUR AIDER CEUX QUI COMME MOI N'ONT... par ranouf

Commentaires et avis

Commentaire de greatmonarch le 18/08/2005 04:31:17

C'est un code prévu pour transmettre des infos d'un page web à une autre ?

J'ai déjà utilisé des trucs comme ça en asp, mais c'était juste pour le déboguage, imprimer près de 100 paramètres et éplucher le tout. (utilisé dans le process de tarification de ce site:
www.circleevent.com)

Jean=Marc LAMBERT

Commentaire de Jack9292 le 08/02/2006 02:06:36

J'ai essayé de l'adapter pour un quizz sur un autre site ( www.alternativeinformatique.com ) mais je n'y suis pas arrivé. Galère pour récupérer les données correctement... Mais je ne désespère pas !

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

upload + verification [ par bebe.vodka ] salut!voila, en fait j'utilise le composant aspSmartUpload dans un programme pour l'upload de fichiers. je verifie aussi si mon fichier existe deja su Upload avec aspSmartUpload [ par Nabel ] Salut à toutes et tous,J'ai un petit pb concernant mon upload. En effet, j'utilise ASPSmartUpload, et quelques fois il m'upload des fichiers avec une Upload et insertion de données dans BD [ par vertigo76 ] Salut a tousJe souhaite faire un formulaire avec lequel j'upload un fichier en inserant des données dans une BD. Pour cela j'ai récupéré un script pou aspsmartupload [ par krepuscule ] problem de upload salut atous je vous pose mon code si klk1 voi pourkoi ca plante en disant ke ma page est introuvable erreur 500 je lui en serai rec collection d une form avec enctype="multipart/form-data" [ par Poulipe ] Bonjour,j essaye de recuperer la collection d une form enctype="multipart/form-data"mais sans resultat pour le moment.Si quelqu un connait la soluce, ASP progress bar(upload) [ par abari ] bonjour tout le monde,dans l'un des pages de mon site j'ai utilis&#233; aspSmartUpload pour attacher des fichiers(Set mySmartUpload = Server.CreateObj renommer un fichier lors d'un upload avec AspSmartUpload [ par aymdeb ] Bonjour, J'uploade des fichiers avec AspSmartUpload. J'aimerai renommer tous les fichiers pour &#234;tre s&#251;r qu'il &#233;crase rien?Comment faire Prob upload et base de données [ par gooluk ] J'ai un probleme lors d'un upload de fichierj'upload une image, je verifie si mon image existe dans la base de donn&#233;es. Si elle exite j'aimerais aspsmartupload upload fichiers [ par Passarinho44 ] Bonjour, Je cherche à uploader des fichiers sur une page asp.J'ai trouvé une méthode qui m'a l'air bien avec aspsmartupload mais je n'arrive pas à tro Mise en forme de données [ par CGSI ] Salut tout le monde,Je sait que vous pourez m'aider car c'est digne du débutant que je suis.Je travail en ASP .Net avec SQL Server et VB.Le probléme q


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,733 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales