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

  [Opened] condition particulière sur MenuList

Posted by leodc on 08/13/2008 15:28

Salut à tous, me revoilà pour petite question:

J'ai un formulaire jForm permettant d'éditer une table de ma base, ce formulaire contient donc une menuList se référant à un dao, jusqu'ici tout va bien.

Là ou cela se corse, c'est que dans la daomethod de cette menulist, j'aimerai y mettre une condition (donc un findBy($condition)).

En gros j'aimerai afficher les éléments qui ne sont pas déjà présent dans une autre liste.

Voici la dao

 <?xml version="1.0" encoding="utf-8"?>
 <forms xmlns="http://jelix.org/ns/forms/1.0">

 <output ref="id_etat_pompage">
	<label>Etat</label>
 </output>

 <menulist ref="id_pompe" 
		  dao="sig~pompe" 
          daomethod="findAll"
          daolabelproperty="id_pompe"
          daovalueproperty="id_pompe"
		  required = "true">
      <label>Pompe</label>
 </menulist>

 <input ref="debit_max" type="decimal">
	<label>debit_max</label>
 </input>

 <input ref="tps_fonctionnement" type="decimal">
	<label>tps_fonctionnement</label>
 </input>

 <input ref="debit_mensuel" type="decimal">
	<label>debit_mensuel</label>
 </input>

 <submit ref="_submit">
	<label>ok</label>
 </submit>
 </forms>

et voici le code comme je l'ai réalisé mais cela ne fonctionne (ce que je pense logique)...

 
 $fact = jDao::get('sig~pompe_etat_pompage');
				$conditions = jDao::createConditions();
				$conditions->addCondition('id_etat_pompage','=',$this->getParam('id'));
				$listeEtatPompes = $fact->findBy($conditions);
				$this->_tpl->assign('listeEtatPompes', $listeEtatPompes);
				
				$listeP = array();
				$i = 0;
				
				foreach($listeEtatPompes as $record){
					$listeP[$i] = $record->id_pompe;
					$i++;
				}
				
				$formEtatPompe = jForms::create('sig~pompe_etat_pompage');
				$conditions = jDao::createConditions();
				$conditions->addCondition('id_pompage','=',$this->getParam('idTable'));
				
				$conditions->addCondition('id_pompe','NOT IN',$listeP);
				
				$formEtatPompe->setData('id_etat_pompage', $this->getParam('id'));
				$formEtatPompe->setData('id_pompe', array('daomethod'=>'findBy($conditions)'));
				$this->_tpl->assign('formEtatPompe', $formEtatPompe);

Voilà j'éspère que quelqu'un pourra m'aider, si vous avez besoin de précisions...


Nicolas Rion

SAS Géosphère
1 Impasse champeau
21800 Quétigny

  [Opened] Re: condition particulière sur MenuList

Reply #1 Posted by Yann.L on 08/13/2008 16:24

Je pense qu'il vaudrait mieux que tu crée une méthode dans la factory de ta dao pompe.

methode_xml

methode_php

 
Page
  1. Re: condition particulière sur MenuList