Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Outils > XMLRAD
XMLRAD Environnement de développement Web XML/XSL. Avant de poster -> F.A.Q XMLRAD
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/01/2003, 15h08   #1
Membre régulier
 
Inscription : janvier 2003
Messages : 207
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 207
Points : 94
Points : 94
Envoyer un message via MSN à rgarnier
Par défaut Checkbox

Bonjour,

j'essaie pour la 1° fois d'utiliser des checkbox dans une table.
Ca marche à peu près bien sauf quand j'update mon fichier ....

en effet, dès qu'un checkbox est checked, tous les suivants sont enregistrés en checked.

D'après ce que j'ai pu voir, le champ TABLE.[Indice].MONCHECK n'existe pas dans le context s'il n'est pas checked. Mais je pense que ja passe à côté d'un truc très simple ...

Merci.
__________________
Renaud
W2003 / XP /VISTA
SQL SERVER / ORACLE
ADO
rgarnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2003, 16h25   #2
RDM
Membre Expert
 
Inscription : mars 2002
Messages : 1 426
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 1 426
Points : 1 546
Points : 1 546
Envoyer un message via ICQ à RDM
un input checked n'est pas transmis s'il n'est pas checked.
__________________
RDM
Tout Est Relatif
Rubrique XMLRAD: http://xmlrad.developpez.com
FAQ XMLRAD: http://xmlrad.developpez.com/faq/
RDM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2003, 16h46   #3
Membre régulier
 
Inscription : janvier 2003
Messages : 207
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 207
Points : 94
Points : 94
Envoyer un message via MSN à rgarnier
ok, c'est ce que j'avais compris, mais comment faire ???? car à partir du moment où j'en ai 1 de checked, tous les suivants le sont ....
__________________
Renaud
W2003 / XP /VISTA
SQL SERVER / ORACLE
ADO
rgarnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2003, 18h08   #4
RDM
Membre Expert
 
Inscription : mars 2002
Messages : 1 426
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 1 426
Points : 1 546
Points : 1 546
Envoyer un message via ICQ à RDM
comprend pas bien: tu en checks 1 et d'autre sont alors checked en meme temps ?
__________________
RDM
Tout Est Relatif
Rubrique XMLRAD: http://xmlrad.developpez.com
FAQ XMLRAD: http://xmlrad.developpez.com/faq/
RDM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2003, 08h34   #5
Membre régulier
 
Inscription : janvier 2003
Messages : 207
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 207
Points : 94
Points : 94
Envoyer un message via MSN à rgarnier
non, j'explique le truc :

1 - j'affiche une Datatable avec 1 checkbox sur un champ. l'initialisation se fait sans pb avec la valeur contenue dans ce champ.

2 - je check quelques lignes

3 - je valide, ce qui me lance un xmlgram d'update des lignes de mon fichier. Le pb se situe à ce niveau là ; tous les enregs en dessous du premier checked sont enregistrés en checked.

Bon, j'ai pris une autre voie pour gérer ça et elle marche (image checked) mais je voudrais bien comprendre le truc ...
__________________
Renaud
W2003 / XP /VISTA
SQL SERVER / ORACLE
ADO
rgarnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2003, 09h24   #6
RDM
Membre Expert
 
Inscription : mars 2002
Messages : 1 426
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 1 426
Points : 1 546
Points : 1 546
Envoyer un message via ICQ à RDM
le problème est peut etre lié au XMLC_Pivot si tu l'utilises...
Comment effectues al mise à jour ? tu utilises un match ?
__________________
RDM
Tout Est Relatif
Rubrique XMLRAD: http://xmlrad.developpez.com
FAQ XMLRAD: http://xmlrad.developpez.com/faq/
RDM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2003, 14h48   #7
Nouveau Membre du Club
 
Inscription : juillet 2002
Messages : 75
Détails du profil
Informations personnelles :
Âge : 43

Informations forums :
Inscription : juillet 2002
Messages : 75
Points : 35
Points : 35
Moi j'ai le même problème que "rgarnier".

J’ai le résultat d’une recherche sous la forme d’une grille et sur la 1er colonne j’ai posé des checkbox toutes initialisées en « non checked » (pas d’attribut checked). J’utilise des XMLC_Pivot pour ma mise à jour en masse. Toutes les données sont correctement updatées sauf pour les checkbox. Il semblerai qu’à partir de la première checkbox checked XMLrad considère toutes les autres checkbox comme checked.

Est ce que quelqu'un arrive à reproduir l'erreur ?

Lux
Lux interior est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2003, 20h26   #8
Membre régulier
 
Inscription : janvier 2003
Messages : 85
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 85
Points : 92
Points : 92
Moi je ne rencontre aucun problème pour faire ce que tu fais. Décris moi comment tu as fais ta checkbox. Il faut que ce soit du genre :

Code :
1
2
3
4
5
<input type="checkbox" name="MON_PIVOT[{position()}].CHECKED" value="1">
  <xsl:if test="CHECKED='1'">
    <xsl:attribute name="checked"/>
  </xsl:if>
</input>
Peux tu aussi vérifier le contenu de l'InputDoc (sauve l'inputdoc sur disque avec un simple InputDoc.Save('D:\Temp.xml')) pour voir si chacun des enregistrements de ton pivot ont tous le checked ou pas ?
__________________
Julien C.
Julien C. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2003, 09h51   #9
Nouveau Membre du Club
 
Inscription : juillet 2002
Messages : 75
Détails du profil
Informations personnelles :
Âge : 43

Informations forums :
Inscription : juillet 2002
Messages : 75
Points : 35
Points : 35
Voici une manière simple de reproduir mon erreur :

En utilisant le wizzard d'xmlrad de la "Data Grid' je modifie mon XSL en remplaçant pour une colonne :
Code :
<input type="text" name="MON_PIVOT[{position()}].MonCode" value="{MonCode}"/>
par
Code :
1
2
3
4
5
< <input type="checkbox" name="MON_PIVOT[{position()}].MonCode" value="1"> 
  <xsl:if test="MonCode='1'"> 
    <xsl:attribute name="checked"/> 
  </xsl:if> 
</input>>
En execution je coche une checkbox, et après un petit select * from ma table je constate que toutes les valeurs du champs où était posé mon checkbox ont été modifiées à partir de la première coche.

: Qu'est ce que c'est qu'ce binnnnse :
Lux interior est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2003, 10h52   #10
Membre éclairé
 
Inscription : janvier 2003
Messages : 284
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 284
Points : 311
Points : 311
Envoyer un message via MSN à Nicolas.Cogi
Hello hello...
Alors, le comportement que vous rencontrez tous les 2 est normal et lié à http, html et à la gestion du Context par xmlrad

Lorsque vous utilisez des checkboxes, il faut noter que seuls les checkboxes cochées sont renvoyées dans le formulaire, et donc seules les cochées se retrouvent dans le Context.

on aurait par exemple :

XMLC_PIVOT = ORG
ORG[1].CHECKED = 1 (cochée)
ORG[2].CHECKED = 1 (cochée)
ORG[3].CHECKED = (pas cochée, donc pas passé)

Le Framework construit alors le InputDoc.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<Context>
  <ORG>
    <CHECKED>1</CHECKED>
    ...
  <ORG>
  <ORG>
    <CHECKED>1</CHECKED>
    ...
  <ORG>
  <ORG>
    ...
  <ORG>
</Context>
On remarque que le InputDoc est construit sans le 3eme checked, puisque la checkbox n'a pas été renvoyée...

Maintenant, lorsque le Match rencontre dans l'InputDoc le premier élément ORG, il va placé dans le Context tous les éléments fils :

A ce moment là, on aura Context.Values['CHECKED'] := 1;

Pour le deuxième élement, le Match remplit le Context avec CHECKED = 1 comme précédement.
On aura toujours Context.Values['CHECKED'] := 1;

Et finallement, quel est l'état du Context pour le troisième élément ??? Et bien surprise, le Context conserve la précédente valeur (CHECKED = 1) et comme la valeur CHECKED = 0 n'est pas passée (seules les checkboxes cochées sont envoyées...), le Match ne peut pas pas mettre à jour le Context, puisque l'élément <CHECKED> n'existe meme pas dans l'InputDoc

Ainsi, c'ets bien le comportement que vous aviez tous les deux observé : xmlrad met à jour tous les enregistrements en dessous du premier coché.

Quelle solution ?
La plus simple est certainement de placer un Assign qui écrase le Context avant que le XMLGram ne boucle sur le Match.

on aurait alors :

Match
|- DBBatch
|- Assign

On peut ainsi replacer la valeur CHECKED à 0 ou à '' sans code.
Il faut ensuite faire Skip := True dans le BeforeInstruction en fonction de l'état du Context pour sauter ou non l'éxécution du DBBatch.

Voila voila...
__________________
Nicolas
Nicolas.Cogi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2003, 13h48   #11
Nouveau Membre du Club
 
Inscription : juillet 2002
Messages : 75
Détails du profil
Informations personnelles :
Âge : 43

Informations forums :
Inscription : juillet 2002
Messages : 75
Points : 35
Points : 35
Et bien voilà, c'est bon

Merci Nicolas.

J'ai donc suivit tes instructions en ajoutant le code suivant dans mon BeforeInstruction

Code :
1
2
   if Input.GetValue('CHECKED')  <>  Context.GetValue('CHECKED') then
      Skip := True;
Et en ajoutant un assign fils dans mon match :

Code :
1
2
3
4
5
6
7
8
9
10
11
<Assign Name="PurjContext">
	<Fields>
		<Field>
			<Destination>CONTEXT</Destination>
			<Name>CHECKED</Name>
			<Source>INPUT</Source>
			<SourceField>CHECKED</SourceField>
			<Value/>
		</Field>
	</Fields>
</Assign>
Lux interior est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2003, 10h48   #12
Membre éclairé
 
Inscription : janvier 2003
Messages : 284
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 284
Points : 311
Points : 311
Envoyer un message via MSN à Nicolas.Cogi
Et bin niquel !
__________________
Nicolas
Nicolas.Cogi 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 21h57.


 
 
 
 
Partenaires

Hébergement Web