Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] DAO dynamique et checkboxes

Posted by bdecaslou on 05/10/2013 11:54

Bonjour à tous,

Voilà j'utilise dans un de mes formulaires une checkboxes que j'initialise avec ma dao:

<checkboxes ref="idSpecies">
    <label>Select the species</label>
    <datasource dao="ProjetWeb~species" method="findAll"
        labelproperty="nameSpecies"/>
    </checkboxes>

Seulement je ne sais pas comment récupérer toute les valeurs cochés dans mon controller et je ne trouve pas d'information là-dessus. Je sais que la valeur retourné est un arry mais je ne sais pas comment récupérer toute ces valeurs.

Si j'utilise la méthode suivante; ça ne me renvoie que le premier coché

$speciesobserved-> idExperiment= $this->param('idSpecies')

Comment faire pour récupérer le tableau? La solution ne doit pas êtr etrop compliqué mais je perds beaucoup de temps dessus.

Merci d'avance

  [Opened] DAO dynamique et checkboxes

Reply #1 Posted by foxmask on 05/10/2013 12:01

[selon la donc|http://docs.jelix.org/fr/manuel-1.5/jforms/xml-1.1#liste-de-cases-a-cocher] ça retourne quoiqu'il arrive un array.faites un jlog::dump de $form->getData('idsepecies') dans la méthode de votre contrôleur qui reçoit les données pour voir ce que ça retourne .


@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !

  [Opened] DAO dynamique et checkboxes

Reply #2 Posted by bdecaslou on 05/10/2013 12:25

Ca me renvoie ça lorsque je selectionne les deux premiers. Comment dois-je faire pour stocker ces valeurs dans un array? array ( 0 => '1', 1 => '2', )

  [Opened] DAO dynamique et checkboxes

Reply #3 Posted by bdecaslou on 05/10/2013 12:34

En fait j'aimerais stocker les variables dans la dao grâce à ce code
$b=$form->getData('idSpecies');
        for ($i = 0; $i <sizeof($array); $i++) {
                 $speciesobserved-> idExperiment= $this->param('idExperiment');
                 $speciesobserved-> idSpecies= $array($i);
                 $dao1 = jDao::get('ProjetWeb~speciesobserved');
                 $dao1->insert($speciesobserved);  
                                    }

Mais ça me renvoie le code d'erreur suivant et je n'y comprends plus rien

Fatal error: Function name must be a string in C:\wamp\www\ProjetWeb\modules\ProjetWeb\controllers\default.classic.php on line 303

Soit la ligne correspondant à <code> $speciesobserved-> idSpecies= $array($i); </code>

  [Opened] DAO dynamique et checkboxes

Reply #4 Posted by foxmask on 05/10/2013 17:41

l'erreur est dûe à :

$speciesobserved-> idSpecies= $array($i);

car pour PHP vous essayez d'appeler une function via $array()

au lieu de cela vous voulez l'occurence de votre array ; ca devrait etre ça

$speciesobserved-> idSpecies= $array[$i];

Sinon on peut remplacer le sizeof($array) par count($array) ou encore utiliser un foreach

foreach ($array as $key => $value) {
....
   $speciesobserved-> idSpecies= $array[$key]
}

@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !

  [Opened] DAO dynamique et checkboxes

Reply #5 Posted by bdecaslou on 05/10/2013 19:56

Effectivement ce n'est pas des parenthèses qu'il fallait mettre. Merci beaucoup!

 
Page
  1. DAO dynamique et checkboxes