Categories > TinyButStrong general (FR) >

Prb de : Blocs conditionnels !

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: Toan
Date: 2006-03-07
Time: 16:55

Prb de : Blocs conditionnels !

Salut le toulousain,

Une fois de plus je viens vers toi!

Pourquoi les bloc condionnels ne marchent pas comme dans ton exemple?:

Le fichier PHP ajout_user.php:
<?php

include_once('../../tbs/tbs_class.php');

$TBS = new clsTinyButStrong;

$TBS->LoadTemplate('../templates/ajout_user.html');

if ( isset($_POST["Provenance"]) )
    {
    switch($_POST["Provenance"]){
        case "Collaborateur":
            $bloc_utilisateur = "lci";
            break;
        case "Banque":
            $bloc_utilisateur = "banque";
            break;
        case "Immobilier":
            $bloc_utilisateur = "immobilier";
            break;
        default:
            $bloc_utilisateur = "lci";
        } // switch
    $_SESSION["code_provenance"] = $_POST["Provenance"];
    }
else
    {
    $_SESSION["code_provenance"] = "Collaborateur";
    $bloc_utilisateur = "lci";
    }

//requete des collaborateurs
$reqCollaborateurs  = "SELECT C.col_initiales, C.col_prenom, C.col_nom FROM Collaborateurs C ";
$reqCollaborateurs .= "ORDER BY C.col_initiales ;";

//blocs des collaborateurs
$TBS->MergeBlock('bloc_collaborateurs', $id_connexion, $reqCollaborateurs);
            $TBS->MergeField('code_provenance',$_SESSION["code_provenance"]);


$TBS->Show();
//on ferme la connexion
mysql_close($id_connexion);
?>

le fichier HTML ajout_user.html:
<body>
<center><span class="photo">[var.message]</span></center>
<br>
<form action="[var..script_name]?page=[var.page_courante]" method="post" ENCTYPE="multipart/form-data" name="FormSocietes">
<table align="center" cellspacing="1" cellpadding="4" border="0" bgcolor="black">
      <tr bgcolor="[var.tab_constantes.COUL_TITRE]">
        <th colspan="2" align="center" height="30"><h5>AJOUTER UN UTILISATEUR</h5></th>
      </tr>
    <tr bgcolor=[var.tab_constantes.COUL_GRIS]>
        <td><b>Provenance:</b></td>
        <td>
          <select name="Provenance" onChange="javascript:form.submit();">
            <option value="Collaborateur">
            --> LCI
            </option>
            <option value="Banque">
            --> Banques
            </option>
            <option value="Immobilier">
            --> Partenaires immobiliers
            </option>
            <option>[code_provenance;selected]</option>
        </select>
        </td>
    </tr>
    <tr bgcolor=[var.tab_constantes.COUL_GRIS]>
        <td><b>Utilisateur:</b></td>
        <td>
        <select name="Utilisateur">
            <option value="[bloc_collaborateurs.col_initiales]">
            [onload_1;block=option;when [var.bloc_utilisateur]=lci]
            [bloc_collaborateurs.col_initiales; block=option]> [bloc_collaborateurs.col_prenom; block=option]             [bloc_collaborateurs.col_nom; block=option]
            </option>
        </select>
        </td>
    </tr>
    <tr bgcolor=[var.tab_constantes.COUL_GRIS]>
        <td><b>Utilisateur:</b></td>
        <td>
        <select name="Utilisateur">
            <option value="[bloc_prescripteurs.code_delegue]">
            [onload_1;block=option;when [var.bloc_utilisateur]=banque]
            [bloc_prescripteurs.del_prenom; block=option] [bloc_prescripteurs.del_nom; block=option]
            </option>
        </select>
        </td>
    </tr>
    <tr bgcolor=[var.tab_constantes.COUL_GRIS]>
        <td><b>Utilisateur:</b></td>
        <td>
        <select name="Utilisateur">
            <option value="[bloc_partenaires.code_interlocuteur]">
            [onload_1;block=option;when [var.bloc_utilisateur]=immobilier]
            [bloc_partenaires.del_prenom; block=option] [bloc_partenaires.del_nom; block=option]
            </option>
        </select>
        </td>
    </tr>
      <tr bgcolor="[var.tab_constantes.COUL_TITRE]">
        <td colspan=2 align=center height=30>
        <input type='image' name='Ajouter' src="../img/boutons/ajouter.gif" border=0 />
        </td>
    </tr>
</table>
</form>
<//body>

Ou est l'erreur?

Merci de m'aider!
By: Skrol29
Date: 2006-03-07
Time: 17:56

Re: Prb de : Blocs conditionnels !

Salut Toan,

Ca serait plus simple si tu disais ce qui ne va pas. "ne marche pas" c'est pas super détaillé comme piste de départ.

D'après les messages d'erreur que j'ai obtenu, il s'evère que [var.bloc_utilisateur] est référencé dans dans balises [onload] mais malheusement $bloc_utilisateur n'est renseigné que après le LoadTemplate(). Il faut donc décaler la ligne LoadTemplate() après la déf de cette variable.

Tu as mis trop de paramètre "block=option", mais cela n'a pas d'incidence sur ton modèle. Il suffit de le mettre sur un seul champ, pas  plus.
By: Toan
Date: 2006-03-08
Time: 10:29

Re: Prb de : Blocs conditionnels !

Slt Skol29,

Ok, je vais essayer de détailler les problèmes à l'avenir! ;-)

Sinon, d'une j'ai enlever les block=option en trop et de deux j'ai déclaré la variable $bloc_utilisateur avant le LoadTemplate()!

Mais ça ne marche toujours pas!

Et je détaille: il y a les 3 blocs affichés au lieu d'un et cela à chaque fois que je sélectionne la provenance de l'utilisateur.
Bon la sélection du bloc se fait bien et l'affichage en question, mais il y toujours les 2 autres affichés!

Je te donne mon code:

Le fichier PHP ajout_user.php:
<?php

include_once('../../tbs/tbs_class.php');

$TBS = new clsTinyButStrong;

if ( isset($_POST["Provenance"]) )
    {
    switch($_POST["Provenance"]){
        case "Collaborateur":
            $bloc_utilisateur = "lci";
            break;
        case "Banque":
            $bloc_utilisateur = "banque";
            break;
        case "Immobilier":
            $bloc_utilisateur = "immobilier";
            break;
        default:
            $bloc_utilisateur = "lci";
        } // switch
    $_SESSION["code_provenance"] = $_POST["Provenance"];
    }
else
    {
    $_SESSION["code_provenance"] = "Collaborateur";
    $bloc_utilisateur = "lci";
    }

$TBS->LoadTemplate('../templates/ajout_user.html');

//requete des collaborateurs
$reqCollaborateurs  = "SELECT C.col_initiales, C.col_prenom, C.col_nom FROM Collaborateurs C ";
$reqCollaborateurs .= "ORDER BY C.col_initiales ;";

//blocs des collaborateurs
$TBS->MergeBlock('bloc_collaborateurs', $id_connexion, $reqCollaborateurs);
   $TBS->MergeField('code_provenance',$_SESSION["code_provenance"]);


$TBS->Show();
//on ferme la connexion
mysql_close($id_connexion);
?>


le fichier HTML ajout_user.html:
<body>
<center><span class="photo">[var.message]</span></center>
<br><form action="[var..script_name]?page=[var.page_courante]" method="post" ENCTYPE="multipart/form-data" name="FormSocietes">
<table align="center" cellspacing="1" cellpadding="4" border="0" bgcolor="black">
      <tr bgcolor="[var.tab_constantes.COUL_TITRE]">
        <th colspan="2" align="center" height="30"><h5>AJOUTER UN UTILISATEUR</h5></th>
      </tr>
    <tr bgcolor=[var.tab_constantes.COUL_GRIS]>
        <td><b>Provenance:</b></td>
        <td>
          <select name="Provenance" onChange="javascript:form.submit();">
            <option value="Collaborateur">
            --> LCI
            </option>
            <option value="Banque">
            --> Banques
            </option>
            <option value="Immobilier">
            --> Partenaires immobiliers
            </option>
            <option>[code_provenance;selected]</option>
        </select>
        </td>
    </tr>
    <tr bgcolor=[var.tab_constantes.COUL_GRIS]>
        <td><b>Utilisateur:</b></td>
        <td>
        <select name="Utilisateur">
            <option value="[bloc_collaborateurs.col_initiales]">
            [onload_1;block=option;when [var.bloc_utilisateur]=lci]
            [bloc_collaborateurs.col_initiales]> [bloc_collaborateurs.col_prenom]             [bloc_collaborateurs.col_nom]
            </option>
        </select>
        </td>
    </tr>
    <tr bgcolor=[var.tab_constantes.COUL_GRIS]>
        <td><b>Utilisateur:</b></td>
        <td>
        <select name="Utilisateur">
            <option value="[bloc_prescripteurs.code_delegue]">
            [onload_1;block=option;when [var.bloc_utilisateur]=banque]
            [bloc_prescripteurs.del_prenom] [bloc_prescripteurs.del_nom]
            </option>
        </select>
        </td>
    </tr>
    <tr bgcolor=[var.tab_constantes.COUL_GRIS]>
        <td><b>Utilisateur:</b></td>
        <td>
        <select name="Utilisateur">
            <option value="[bloc_partenaires.code_interlocuteur]">
            [onload_1;block=option;when [var.bloc_utilisateur]=immobilier]
            [bloc_partenaires.del_prenom] [bloc_partenaires.del_nom]
            </option>
        </select>
        </td>
    </tr>
    <tr bgcolor=[var.tab_constantes.COUL_GRIS]>
        <td><b>Nom d'utilisateur:</b></td>
        <td>
          <input type=text name='Login' maxlength=10 size=10 />
        </td>
    </tr>
    <tr bgcolor=[var.tab_constantes.COUL_GRIS]>
        <td><b>Mot de passe:</b></td>
        <td>
          <input type=text name='Password' maxlength=10 size=10 value="[var.mot_de_passe]" onclick="select();" />
        </td>
    </tr>
    <tr bgcolor=[var.tab_constantes.COUL_GRIS]>
        <td><b>Appartient au groupe:</b></td>
        <td>
          <select name="Groupes[]" size="[bloc_groupes.#]" multiple>
        <option value="[bloc_groupes.code_groupe]">[bloc_groupes.grp_nom;block=option]</option>
        <option>[code_groupe;selected]</option>
        </select>
        </td>
    </tr>
      <tr bgcolor="[var.tab_constantes.COUL_TITRE]">
        <td colspan=2 align=center height=30>
        <input type='image' name='Ajouter' src="../img/boutons/ajouter.gif" border=0 />
        </td>
    </tr>
</table>
</form>
</body>

Tu vois mieux l'erreur?

Si tu veux que je rentre plus dans les détails, n'hésite pas!

@+
By: Toan
Date: 2006-03-10
Time: 10:10

Re: Prb de : Blocs conditionnels !

Salut Skrol29,

Tu ne vois toujours mon problème sur les blocs conditionnels?

Merci de me répondre.

@+
By: Skrol29
Date: 2006-03-10
Time: 21:43

Re: Prb de : Blocs conditionnels !

Salut Taon,

Effectivement les lignes du tableau sont toujours affichées avec des listes vides. Mais cela correspond bien a ce que tu as codé. D'ailleurs lors de ton premier code, je croiyais que c'était ce que tu voulais.

Pour supprimer la ligne entière, il faut remplacer les
[onload_1;block=option;when ...]
par
[onload_1;block=tr;when ...]