Categories > TinyButStrong general (FR) >

Pourquoi ne peut-on pas passer un mergeblock comme clause selected ?

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: Lionel
Date: 2007-06-12
Time: 15:53

Pourquoi ne peut-on pas passer un mergeblock comme clause selected ?

Salut à tous,

Je souhaite activer plusieurs checkbox sur la base d'une requête en base de données. Je m'attendais à faire un simple:
$TBS->MergeBlock('blk1',$dblink,$listeDesCasesCochees);
et d'utiliser ce résultat comme s'il s'agissait d'un tableau pour activer les cases à cocher.

Mais ca marche pas et le seul moyen consiste à créer le tableau dans le code PHP et à l'exporter sous la forme d'un var.

Ma question est simple: pourquoi ? Ce serait tellement pratique.
By: Skrol29
Date: 2007-06-15
Time: 13:53

Re: Pourquoi ne peut-on pas passer un mergeblock comme clause selected ?

Oui, à ce moment là, tu as plutôt besoin d'un MergeField().
Un MergeBlock() est sensé multiplier une section.
By: Lionel
Date: 2007-06-19
Time: 11:15

Re: Pourquoi ne peut-on pas passer un mergeblock comme clause selected ?

Merci pour ta réponse; hélas, j'ai essayé MergeField mais ca ne donne rien. Du coté PHP j'ai:
// liste des catégories
$listeCategories="SELECT id_categorie, nom_categorie FROM categorie ORDER BY nom_categorie ASC";
$liencc="SELECT categorie_id FROM liencc WHERE compagnie_id=$id_compagnie";
$TBS=new clsTinyButStrong;
$TBS->LoadTemplate("templates/editBonnesAdresses.htm");
$TBS->MergeField('liencc',$liencc);
$TBS->MergeBlock('listeCategories',$dblink,$listeCategories);
$TBS->Show();
et l'extrait du fichier HTML qui devrait m'afficher mes cases à cocher préselectionnées en fonction des valeurs de "liencc":
<tr><td>Catégorie(s):</td><td>[var.liencc;selected=categorie_id[]]
        <span><input type="checkbox" name="categorie_id[]" value="[listeCategories.id_categorie;block=span]" />[listeCategories.nom_categorie]<br /></span>
    </td></tr>

Le <span> me sers juste à délimiter la zone pour TBS car il n'aime pas trop se baser sur le <br /> (balise non trouvée). Dois-je placer le [var.liencc;selected=categorie_id[]] ailleurs ?

Merci d'avance pour tes lumières
By: Skrol29
Date: 2007-06-20
Time: 17:36

Re: Pourquoi ne peut-on pas passer un mergeblock comme clause selected ?

Salut,

Quelle version de TBS as-tu ? On dirait que ton code est pour une ancienne version.

Tout d'abord, MergeField() ne sait pas traiter le SQL contrairement à MergeBlock(). Tu dois donc lui fournir en deuxième argument un tableau contenant toutes les valeurs à cocher.

Coté HTML, il me semble que la balise TBS
  [var.liencc;selected=categorie_id[]]
doit être remplacé par
  [var.liencc;ope=html;selected=categorie_id[]]
car sinon tu n'active pas le plug-in HTML, c'est lui qui fait la sélection.

> Le <span> me sers juste à délimiter la zone pour TBS
> car il n'aime pas trop se baser sur le <br />
"block=br" n'est pas valable car il faut un couple de balise ourante+fermants.
Mais tu peux aussi tenter le "block=_" qui défini le bloc sur la ligne texte entière. C'est pratique souvent mais il faut faire attention si on utilise un éditeur HTML visuel qui retouche le code HTML source.