Bonjour, Je vous explique la situation.
J'ai une table de base de données avec des activités. Dans un formulaire, je veux afficher les activités avec une checkbox. Lorsque dans ma table, le champs ACT_ok est à 0, je ne dois plus afficher la checkbox mais le texte "complet". De plus, si le formulaire n'est pas correct, les activités selectionnées doivent apparaître lors de la demande de correction du formulaire.
Comment réaliser cela?
code coté php:
...
if(isset($_POST['par_activity']))
$activitySelected = $_POST['par_activity'];
else
$activitySelected = 0; // activités sélectionnées dans mon formulaire
$TBS = new clsTinyButStrong ;
$TBS->LoadTemplate('xxx.htm');
$TBS->MergeBlock('blkActivities',$arrayActivity); // résultat de ma table des activités.
$TBS->Show();
|
coté html:
...
<tr bgcolor="#F0F0F0">
<td>
<div>
<input name="par_activity[]" type="checkbox" value="[blkActivities.ACT_ID]" />
[var.activitySelected;ope=html;select=par_activity[]]
[onshow;block=div;when [blkActivities.ACT_ok]=1]
</div>
<div>
<%Complet%>[onshow;block=div;when [blkActivities.ACT_ok]=0]
</div>
</td>
<td>[blkActivities.ACT_ID_Interne]</td>
<td>[blkActivities.ACT_Designation;block=tr]</td>
<td><div align="center"><a href="#" onmouseover="ajax_showTooltip('../register/register.activity.php?id=[blkActivities.ACT_ID]',this);return false" onmouseout="ajax_hideTooltip()">?</a></div></td>
</tr>
...
|
Cela fonctionne bien si il y a peu d'activités dans la base. Mais ça devient vitre très lent (plus de 40 sec) avec 150 activités. Cela à cause du onshow comme expliqué dans la FAQ. Je ne peux pas utiliser de onload car mon block n'est pas encore fusionné.
Le challenge: comment réaliser ma demande tout en restant rapide d'exécution !?! merci d'avance pour votre aide car je suis perdu.