Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/02/2007, 10h59   #1
Membre à l'essai
 
Inscription : novembre 2005
Messages : 72
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 72
Points : 22
Points : 22
Par défaut Method Post et Select rempli dynamiquement

Tout d'abord, bonjour à tous !

Je developpe une fonctionnalité pour le logiciel que je crée.
Celui-ci fonctionne avec un serveur IIS + ASP + SQL et pour la partie client j'utilise donc HTML et JavaScript...
Dans cette page je souhaite rassembler pas mal d'informations.
Une partie de celles-ci sont enregistrer dans une base commune et d'autre dans une table à part...en effet, l'utilisateur a accés à une liste d'option..ce sont ces options qui sont sauvegardées dans l'autre table...

Pour éviter donc les multiples allez-retour entre le client et serveur ( perte de temps et de performances ), j'ai donc décider de remplir la liste en question de façon dynamique avec javascript et j'enregistre seulement à la fin.

Cette partie fonctionne correctement ( ajouter et supprimer des options de la liste )...
Lors du Submit impossible de récupérer le contenu de ma liste ( je précise que le traitement asp ce fait dans la même page )

Un peu de code pour vous aider à comprendre :

La liste en question :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
<div align="left">
        <select name="LSTRESS" size="4" <%=optionreadlonly%>>
		<% qry="exec sp_liste_resident_ressource @id_resident=" & g_id_resident 
		Set rs = Server.CreateObject("ADODB.Recordset")
		Rs.open qry,conn
		'response.write(qry)
		if not Rs.eof then  
		Do until Rs.eof %>
		        <option value="<%=Rs.fields("id_type_ressource")%>"><%=Rs.fields("libelle_type_ressource")%></option>  
		        <% Rs.movenext
		loop 
		end if 
		Rs.close
		set Rs=nothing %>   
     </select>				
     <% if cint(g_id_resident) =0 then %>
           <img src="image/AJOUTER.gif" width="20" height="20" Onclick="alert('Il faut préalablement créer l\'usager.');">
      <% else %>
           <img src="image/AJOUTER.gif" width="20" height="20" Onclick="CMD_AJOUTER_RESSOURCE();">
      <%end if %>
      <img src="image/SUPP.GIF"  Onclick="CMD_SUPPRIMER_RESSOURCE();" <%=optiondisabled%>>
</div>
La récupération des données avec la méthode post :
Code :
1
2
3
4
5
6
 
if request.Form("LSTRESS").count() <> 0 then
	for i=0 to request.Form("LSTRESS").count()
		phrase = phrase & request.Form("LSTRESS").item(i)
	next
end if
précision : Je sérialise mes données car la procédure stockée traite la chaîne que je lui envoi.

Et l'appel à la procédure :
Code :
1
2
3
4
5
6
7
8
 
if trim(phrase) <> "" then
	phrase = phrase & ","
	qry=" exec sp_insert_resident_type_ressource @id_resident=" & g_id_resident 
	qry=qry & ", @liste_id_type_ressource='" & phrase & "'"
	'response.Write(qry)
	conn.execute qry
end if
Vla donc au moment de sérialiser les infos de la liste, je ne récupère rien .. pourtant tous les éléments insérer avant la validation étaient bel et bien présent dans cette #!!! liste .

Est-ce ma méthode de remplissage par javascript qui ne permet de récupérer les infos ..?
bor1s est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2007, 23h39   #2
Membre chevronné
 
Avatar de ryan
 
Inscription : juin 2003
Messages : 766
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 766
Points : 760
Points : 760
Yop!

Heuuuu...Je ne suis pas certain de bien comprendre où tu veux en venir.

Quand tu valides un formulaire qui comprend des SELECT, seules les options sélectionnées sont envoyées, et donc elles seules se retrouvent dans la collection request.form.

Donc, dans ton cas, une seule option arrivera à la routine de récupération puisque ton SELECT n'est pas un "multiple".
ryan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2007, 09h37   #3
Membre à l'essai
 
Inscription : novembre 2005
Messages : 72
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 72
Points : 22
Points : 22
Bein en fait j'ajoute des éléments dynamiquement dans la liste mais lorsque je veux les récupérer par la méthode post je n'ai rien...

Alors je me demande si le fait d'ajouter des éléments dans une liste d'option dynamiquement avec javascript n'est pas valable .
bor1s est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2007, 08h01   #4
Membre chevronné
 
Avatar de ryan
 
Inscription : juin 2003
Messages : 766
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 766
Points : 760
Points : 760
Yop!

Si tu peux voir les options ajoutées par le code javascript, c'est que ça marche.

Mais, au risque de me répéter: tu peux avoir mille options dans un SELECT, seule l'option sélectionnée sera transmise par la méthode POST ( ou, si tu utilises un SELECT MULTIPLE: seules les options sélectionnées seront transmises ).

Si tu veux pouvoir récupérer toutes les données que tu ajoutes pour l'instant comme options d'un SELECT, tu dois procéder autrement et créer autant de champs texte que tu as de données à transmettre.
ryan est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h18.


 
 
 
 
Partenaires

Hébergement Web