10 years ago
Topic

Bonjour,

J'ai créé un formulaire de formation qui sera rempli en back-end. Dans ce formulaire, je dois sélectionner dans une liste déroulante le nom de l'intervenant.

Je souhaite récupérer la valeur de cette sélection afin de l'afficher en font-end, dans la fiche de formation. Par l'instant, je n'obtiens que son id soit 46.

Code utilisé :

<p><span>Intervenant</span> : <?php echo $gx['list_intervenants']->value; ?><p>

Comment faire ?

Merci.

Get a VIP membership
10 years ago
0
Level 1

Bonsoir,

dans un champ de type select les options sont constituées d'une pair "text=value".

Pour recuperer le nom de l'intervenant il faut recuperer la propriété "text".


Pour connaitre toutes les propriété de votre objet $gx['list_intervenants'] vous pouvez aussi utiliser un "print_r".


Cordialement.

Lionel


45 Posts
mato
10 years ago
2
Level 1

Bonjour,

pour récupérer les valeurs des select, j'utilise $cck->getValue('nom_du_champ').

Ce code devrait marcher : <p><span>Intervenant</span> : <?php echo $cck->getValue('list_intervenants'); ?> </p>

-Mato


10 years ago
1
Level 2

Bonsoir,

si vous utiliser getValue c'est que vous n'avez pas renseigner les options sous la form "text=value", mais seulement "Text", ce qui fait que SEBLOD affecte à value la même valeur que Text.

Or en base de données, les recherches sont plus rapide sur des entiers que sur du texte, et l'espace utilisé est plus petit.


Les deux situation fonctionne, mais la votre n'est pas optimisée.


Cordialement.

Lionel

45 Posts
mato
10 years ago
0
Level 3

Tout à fait d'accord !

Que la recherche se fasse sur du texte semble aberrant et fastidieux... Pourtant je DOIS être rétro-compatible avec d'autres sites (que je ne peux pas modidifer) et qui attaquent la même table, et qui m'imposent ce système (y compris des séparateurs et concaténations tordues).

J'ai d'ailleurs contacté Octopoos vendredi pour avoir un peu d'aide pour la rétrocompatibilité... Développement custom ? Pourquoi pas ! J'espère bientôt une réponse de Bes :)

-Mato

10 years ago
1
Level 1

Bonjour,

Je ne sais pas si cela est lié mais depuis que j'ai fait un test avec <p><span>Intervenant</span> : <?php echo $cck->getValue('list_intervenants'); ?> </p>, mon groupx ne s'affiche plus du tout.

C'est la seule manipulation que j'ai effectuée depuis l'envoi de ce post...

En premier lieu, les articles associés au template affichaient le message suivant "Oops ! Template not found" tandis que le front-end me disant de sauvegarder les vues Intro & Content de mon template. Cela m'est déjà arrivé, les informations sont toujours revenues après nouvel enregistrement du template mais là, ça ne revient pas.

Voici le code complet de mon fichier position mainbody.php correspond :

<?php

// No Direct Access
defined( '_JEXEC' ) or die( 'Restricted access' );
?>

<?php

/**

* Init jSeblod Process Object { !Important; !Required; }

**/

$jSeblod = clone $this;
jimport( 'joomla.html.pane' );
$pane =&JPane::getInstance('tabs');
$document =& JFactory::getDocument();

$document->addStyleSheet( $this->baseurl.'/templates/'.$this->template.'/css/template_seblod.css' );

?>

<h2>Prochaines dates</h2>
<?php
$isEmpty=false;
$nextForm=0;
$test=$cck->get( 'dates_formation_groupx' )->value;

if (count($test)==0 || $test[0]['dates_formation']->value == '') { $isEmpty=true; }
if ($isEmpty) { echo "Aucune date programmée pour le moment"; }
else {
   foreach ($cck->get( 'dates_formation_groupx' )->value as $gx) {
     if ($nextForm > 2) { break; }
     ?>
        <div class="nextForm">
          <h3><?php echo $gx['titre_prochaine_date_formation']->value; ?></h3>
            <p><span>Intervenant</span> : <?php echo $gx['list_intervenants']->value; ?><p>
          <p><span>Référence</span> : <?php echo $gx['reference_date_formation']->value; ?></p>
          <p class="date"><?php echo $gx['dates_formation']->value; ?>, <?php echo $gx['lieu_de_formation']->value; ?></p>
          <p><a class="inscription" href="/?catid=14&id=61&view=article%20"><img src="/images/mindmapping/blank.png" width="87" height="20"/></a></p>
        </div>
     <?php
     $nextForm++;
   }
}

?>

Quelqu'un peut m'aider à comprendre ce qui vient de se passer ?

Merci.


45 Posts
mato
10 years ago
0
Level 2

Lionel a raison, pour un groupe X, il suffisait de modifier ton

"$gx['list_intervenants']->value" par 

"$gx['list_intervenants']->text"

Pour avoir le texte plutôt que sa valeur en BDD.

En ce qui concerne le groupe X qui disparaît, les autres sont-ils bien là (titre_prochaine_date_formation, reference_date_formation, etc.) ?

Si oui, c'est peut-être simplement un paramètre du champ qui a changé.

10 years ago
3
Level 1

Bonjour.

J'ai testé "$gx['list_intervenants']->text" et cela fonctionne ! Merci beaucoup à tous les deux !!

Par contre, le texte est précédé par le titre du champ soit "Nom intervenant". Comment faire pour ne pas l'afficher ?

Merci.

45 Posts
mato
10 years ago
2
Level 2

Dans les paramètres du champ, tu as l'intitulé, que tu peux vider.

Si tu veux le conserver, tu peux toujours faire un label#nom_html_du_champ {display: none} dans ton css, mais c'est un peu sale :)

10 years ago
1
Level 3

Bonjour et merci beaucoup pour votre aide ! :)

27 Posts
gzukry
10 years ago
0
Level 4

Tu peux mettre "clear" dans l'intitulé du champs pour ne pas faire apparaître d'intitulé.

Get a Book for SEBLOD