2011-04-06 3 views
1

J'ai une séance qui est une collection de structuresSuppression d'une session/structure à coldfusion

SESSION.squad.achievements [key]

il peut être

SESSION.squad.achievements[2010] = "swam the english channel"; 
SESSION.squad.achievements[2009] = "ran a marathon"; 
SESSION.squad.achievements[2008] = "cycled Le Tour"; 

Mes suppressions de code la structure temporairement, mais ne supprime pas la session alors quand je rafraîchis la valeur existe toujours

<cfset myYear = #myYear# /> 
<cfset #StructDelete(SESSION.squad.achievements, myYear)#> 

Des idées comment je peux supprimer cette valeur?

+0

Pouvez-vous préciser quelle valeur que vous voulez supprimer? Ici, votre code devrait supprimer, pour l'année = 2010, la valeur SESSION.squad.achievements [2010] = "swam the english channel" non? –

+0

En outre, comment testez-vous que la valeur a été supprimée? Il se peut que votre action d'actualisation provoque la définition de la valeur à nouveau ... Vidangez la session avant et après votre instruction delete pour pouvoir voir si elle a été réellement supprimée. Vérifiez également la valeur de myYear car '' ne semble pas correct du tout. –

Répondre

2

Essayez d'utiliser cflock

<cflock timeout="30" throwontimeout="No" type="EXCLUSIVE" scope="SESSION"> 
    <cfset StructDelete(SESSION.squad.achievements, myYear)> 
</cflock> 
+0

Ross ou Lucas, Comment cela résout-il le problème? Question déroutante pour commencer car elle n'a pas assez d'informations, mais je ne vois pas comment un cflock peut faire quelque chose d'utile dans cette situation. –

+0

le code de suppression est appelé via jquery/ajax, la valeur # myYear # est passée par la poste. Je n'ai jamais utilisé cflock auparavant, mais il semble bloquer le code pour que la valeur soit effacée avant que la page ne soit rafraîchie. Mon code avait l'air bien avant de l'utiliser, peut-être que Lucas en sait plus sur la façon dont fonctionne . Un peu à ce sujet sur le site de Ben Nadel - http://www.bennadel.com/blog/1123-CFLock-And-Negative-Outcomes-Think-It-Through.htm –

+0

En fait, lire à ce sujet semble être un peu un hack , probablement ce que j'ai besoin de faire est de faire une vérification d'erreur pour s'assurer que la strut de la session est supprimée avant d'appeler l'actualisation. Cela fonctionne pour le moment mais y reviendra pour une solution plus solide –