[ASP] au pros de boucles

au pros de boucles [ASP] - ASP - Programmation

Marsh Posté le 25-06-2003 à 14:52:29    

Salut à tous,
 
Je commence par vous expliquer ce à quoi je voudrais arriver:
Je voudrais que mes données soient uploader dans ma table access en tenant compte des champs non renseignés:
 
Ce que je voudrais avoir:
http://www.absymedia.com/test/table1.gif
 
Ce que j'ai avec mon code actuel:
 
http://www.absymedia.com/test/table2.gif
 
Je vous explique un peu mon probleme:
 
J'ai un formulaire qui comporte quarantes champs:
 
http://www.absymedia.com/test/formulaire.gif
 
Dans ces champs j'inscris le nom de différente rubrique ainsi que leurs priorité d'affichage.
 
Toutes ces données sont uploadées dans ma bdd via SmartUpload
 
Pour ce qui est de leurs nommage:

Code :
  1. Champ01: <input type="text" name="UN">
  2. Priorité: <input type="text" name="PRIOUN">
  3. Champ02: <input type="text" name="DEUX">
  4. Priorité: <input type="text" name="PRIODEUX">
  5. ect...


 
Je traite ces données dans ma page test.asp
 
Afin de pouvoir traiter l'upload plus facilement (??) vers ma base je cherche à construire un tableau dont la taille est connue:
 

Code :
  1. Dim TabGlob()
  2. Redim TabGlob(2,39)


 
Je construis alors derniere colonne de on tableau comme ceci:

Code :
  1. TabGlob(2,0)="UN"
  2.    TabGlob(2,1)="DEUX"
  3.    TabGlob(2,2)="TROIS"
  4.    TabGlob(2,3)="QUATRE"
  5.    TabGlob(2,4)="CINQ"
  6.    TabGlob(2,5)="SIX"
  7.    TabGlob(2,6)="SEPT"
  8.    TabGlob(2,7)="HUIT"
  9.    TabGlob(2,8)="NEUF"
  10.    TabGlob(2,9)="DIX"
  11.    TabGlob(2,10)="ONZE"
  12.    TabGlob(2,11)="DOUZE"
  13.    TabGlob(2,12)="TREIZE"
  14.    TabGlob(2,13)="QUATORZE"
  15.    TabGlob(2,14)="QUINZE"
  16.    TabGlob(2,15)="SEIZE"
  17.    TabGlob(2,16)="DIXSEPT"
  18.    TabGlob(2,17)="DIXHUIT"
  19.    TabGlob(2,18)="DIXNEUF"
  20.    TabGlob(2,19)="VINGT"
  21.    TabGlob(2,20)="VINGTUN"
  22.    TabGlob(2,21)="VINGTDEUX"
  23.    TabGlob(2,22)="VINGTTROIS"
  24.    TabGlob(2,23)="VINGTQUATRE"
  25.    TabGlob(2,24)="VINGTCINQ"
  26.    TabGlob(2,25)="VINGTSIX"
  27.    TabGlob(2,26)="VINGTSEPT"
  28.    TabGlob(2,27)="VINGTHUIT"
  29.    TabGlob(2,28)="VINGTNEUF"
  30.    TabGlob(2,29)="TRENTE"
  31.    TabGlob(2,30)="TRENTEUN"
  32.    TabGlob(2,31)="TRENTEDEUX"
  33.    TabGlob(2,32)="TRENTETROIS"
  34.    TabGlob(2,33)="TRENTEQUATRE"
  35.    TabGlob(2,34)="TRENTECINQ"
  36.    TabGlob(2,35)="TRENTESIX"
  37.    TabGlob(2,36)="TRENTESEPT"
  38.    TabGlob(2,37)="TRENTEHUIT"
  39.    TabGlob(2,38)="TRENTENEUF"
  40.    TabGlob(2,39)="QUARANTE"


 
Maintenant je voudrais pouvoir construire ma premiere et ma seconde colonne qui correspondent respectivement Au Titre du champs et à sa priorité.
ET C'EST LA QUE JE PATAUGE:
 

Code :
  1. Dim x, position
  2. x=0
  3. position=0
  4. For each valeur in TabGlob
  5.   nomTitre=TabGlob(2,x)
  6.   nomprio="PRIO"&TabGlob(2,x)
  7.     if mySmartUpload.Form(nomTitre)="" then
  8.       Do While mySmartUpload.Form(nomTitre)=""
  9.         x=x+1
  10.         nomTitre=TabGlob(2,x)
  11.         nomprio="PRIO"&TabGlob(2,x)
  12.       Loop
  13.     End if
  14. TabGlob(0,position)=mySmartUpload.Form(nomTitre)
  15. TabGlob(1,position)=mySmartUpload.Form(nomprio)
  16.   position=position+1
  17. Next


 
Alors si quelqu'un à compris qq chose à ce que je viens d'expliquer et ci ce quelqu'un a une reponse à m'apporter, je suis preneur...
 
Merci à tous;)

Reply

Marsh Posté le 25-06-2003 à 14:52:29   

Reply

Marsh Posté le 25-06-2003 à 16:01:55    

J'ai rien compris.
 
Plus exactement, je capte pas trop ton code, mais au final, je vois pas ce que ton résultat actuel à d'anormal...
 
Sinon, pourquoi tu utilises "mySmartUpload" ?
Tu sais que c'est pour uploader des fichiers ? Y'a pas de fichier dans ton formulaire la... Utilise Resquest.Form, ça sera quelque peu plus rapide. (l'objet à la même structure)
 
Pour finir, tu veux quoi au final ? Quand le champ n'est pas renseigné, tu ne veux pas l'inserrer ?
 
Pourquoi ne pas bêtement allimenter ton tableau avec tes 40 lignes (sans chercher à comprendre si c'est remplis ou non) et filtrer au moment où tu génères les requêtes d'insersion ?

Reply

Marsh Posté le 25-06-2003 à 17:02:11    

Bon, c'est vrai que l'utilisation de smartupload n'est pas spécialement indiquée dans ce cas, c'etait plus dans l'esprit d'uniformiser l'ensemble de mes pages d'upload qui ont elle des fichiers à transférer sur le serveur.
 
Pour ce qui est de ce que je veux obtenir:
 
Si un champs n'est pas renseigné lors de la soumission du formulaire, je voudrais que le script asp parcours le reste des champs de façon à en trouver un suivant comportant une valeur.
 
Une fois cette valeur récupérée, je voudrais l'inclure dans mon tableau en faisant en sorte que la valeur de ma derniere colonne(cf img1) soit "incrémentée" dans l'ordre.
 
Hum, pas très clair...
Explication
 
Dans mon formulaire:
Champ01: bolobolo Prio: 1
Champ02: blabla Prio: 1
Champ03: "vide" Prio: 1
Champ04: "vide" Prio: 1
Champ05: "zozozo" Prio: 1
 
-----> Soumission
 
Page de traitement, construction de mon tableau:
 
Col1   |   Col2   |   Col3   |
Titre  |   Prio   | NonChamps |
 
 
Ce que je voudrais avoir:
bolobolo   |   1   |   UN   |  
blabla   |   1   |   DEUX   |
zozozo   |   1   |   TROIS   |
 
Alors qu'actuellement j'obtiends ceci (ce que je ne veux pas):
 
bolobolo   |   1   |   UN   |  
blabla   |   1   |   DEUX   |
         |   1   |   TROIS   |
         |   1   |   QUATRE   |
zozozo   |   1   |   CINQ   |
 
ou bien avec un autre traitement ceci:
 
bolobolo   |   1   |   UN   |  
blabla   |   1   |   DEUX   |
zozozo   |   1   |   CINQ   |
 
Bref ce qui est important pour moi c'est de bien attibuer le bon "nomchamp" avec le bon "titre"
 
J'espère que mon explication est plus clair... Pas sur :cry:
 
Merci à vous

Reply

Marsh Posté le 25-06-2003 à 17:04:05    

MagicBuzz a écrit :

J'ai rien compris.


 
C'est que t'es pas un pro des boucles comme le précise le titre :D
[:neowen]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 25-06-2003 à 17:46:48    

UP

Reply

Marsh Posté le 25-06-2003 à 20:41:56    

Djero a écrit :

J'espère que mon explication est plus clair... Pas sur :cry:
 
Merci à vous


 
Question :
=> Ton tableau, tu en fais quoi après ? Tu le met dans une base de données, ou tu te contentes de l'afficher ?
 
Si c'est la première solution, tu te poste trop de questions :
=> Remplis bêtement les 40 lignes de ton tableau sans te soucier si c'est rempli ou non, et c'est au moment de la boucle que tu vas faire sur le tableau pour les insert que t'aura juste à vérifier avant chaque requête que la ligne contient bien toutes les données nécessaires.
 
Si c'est le second cas, je vois toujours pas ce qu'il y a de compliqué...
 
Array à deux dimensions, donc le nombre de lignes s'incrémente.
=> Impossible à faire en ASP, on ne peux que rajouter des colonnes. Soit, suffit de faire pivoter le tableau.
 
Donc, ton code devient :
 
tabGlob est un array à 1 dimension allant de 0 à 39 contenant les nombres écrits.
 
dim tabFinal()
redim tabFinal(3, 1)
 
For i = 0 to 39
   if request.form("monChamp" )(i) <> "" and request.form("monChamp2" )(i) <> "" then
       redim preserve tabFinal(3, i + 1)
       tabFinal(0, i) = request.form("monChamp" )(i)
       tabFinal(1, i) = request.form("monChamp2" )(i)
       tabFinal(2, i) = tabGlob(i)
   end if
Next
 
Normalement, ton tableau au final devrait être remplis correctement, je vois pas où est le problème...


Message édité par MagicBuzz le 25-06-2003 à 20:44:06
Reply

Marsh Posté le 26-06-2003 à 08:36:17    

Effectivement j'upload ma bdd apres traitement du tableau.
 
Je vais essayer ça.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed