31 Posts
Lindsay
8 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
8 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


44 Posts
mato
8 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


8 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

44 Posts
mato
8 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

31 Posts
Lindsay
8 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.


44 Posts
mato
8 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é.

31 Posts
Lindsay
8 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.

44 Posts
mato
8 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 :)

31 Posts
Lindsay
8 years ago
1
Level 3

Bonjour et merci beaucoup pour votre aide ! :)

27 Posts
gzukry
7 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