A bientot.
Petit soucis du forum, je vois 4 pages sans pouvoir voir votre post
Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
Mes cours/tutoriaux
Mon post a réglé mon soucis d'accès à votre réponse. je passe le sujet en résolu
Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
Mes cours/tutoriaux
Holala, encore des soucis par ici.
Bonsoir à tous,
Je ne sais pas trop ce qui coince. Ce soir je testais encore mon formulaire multi-step multi enregistrement. pour passer de l'étape2 à l'étape3 j'ai cette erreur. du coup je ne sais si l'erreur viens de mon code (qui jusqu'ici marchait bien) ou du plugin:
pouvez vous m'eclairer? Merci d'avanceUndefined property: plugin_formMultiRow::$id
#0 C:\xampp\htdocs\MKF\data\genere\e\plugin\plugin_formMultiRow.php(217): exception_error_handler(8, 'Undefined prope...', 'C:\\xampp\\htdocs...', 217, Array)
#1 C:\xampp\htdocs\MKF\data\genere\e\plugin\plugin_formMultiRow.php(138): plugin_formMultiRow->getValue('type_diplome_id')
#2 C:\xampp\htdocs\MKF\data\genere\e\module\inscriptions\view\etape2.php(86): plugin_formMultiRow->getSelect('type_diplome_id', Array)
#3 C:\xampp\htdocs\MKF\lib\framework\class_view.php(85): include('C:\\xampp\\htdocs...')
#4 C:\xampp\htdocs\MKF\lib\framework\class_layout.php(158): _view->show()
#5 C:\xampp\htdocs\MKF\data\genere\e-tmg\layout\template2.php(109): _layout->load('main')
#6 C:\xampp\htdocs\MKF\lib\framework\class_layout.php(122): include('C:\\xampp\\htdocs...')
#7 C:\xampp\htdocs\MKF\data\genere\e-tmg\module\inscriptions\main.php(591): _layout->show()
#8 C:\xampp\htdocs\MKF\lib\framework\class_root.php(275): module_inscriptions->after()
#9 C:\xampp\htdocs\MKF\data\genere\e-tmg\public\index.php(47): _root->run()
#10 {main}
Detail:
#0 C:\xampp\htdocs\MKF\data\genere\e\plugin\plugin_formMultiRow.php (217)
exception_error_handler( , 'Undefined property: plugin_formMultiRow::$id' , 'C:\xampp\htdocs\MKF\data\genere\e-tmg\plugin\plugin_formMultiRow.php' , , Array ( [sName] => type_diplome_id [tPost] => Array ( [0] => 1 ) ) )
#1 C:\xampp\htdocs\MKF\data\genere\e\plugin\plugin_formMultiRow.php (138)
plugin_formMultiRow -> getValue( 'type_diplome_id' )
#2 C:\xampp\htdocs\MKF\data\genere\e\module\inscriptions\view\etape2.php (86)
plugin_formMultiRow -> getSelect( 'type_diplome_id' , Array ( [1] => BAC [3] => BEP [2] => BTS [8] => CAP [45] => DES [44] => DEA [46] => DESS [5] => DUT [7] => DOCTORAT [43] => DTS [6] => INGENIERIE [40] => LICENCE [39] => MAITRISE [47] => MBA [4] => MASTER ) )
#3 C:\xampp\htdocs\MKF\lib\framework\class_view.php (85)
include( 'C:\xampp\htdocs\MKF\data\genere\e\module\inscriptions\view\etape2.php' )
#4 C:\xampp\htdocs\MKF\lib\framework\class_layout.php (158)
_view -> show( )
#5 C:\xampp\htdocs\MKF\data\genere\e\layout\template2.php (109)
_layout -> load( 'main' )
#6 C:\xampp\htdocs\MKF\lib\framework\class_layout.php (122)
include( 'C:\xampp\htdocs\MKF\data\genere\e\layout\template2.php' )
#7 C:\xampp\htdocs\MKF\data\genere\e\module\inscriptions\main.php (591)
_layout -> show( )
#8 C:\xampp\htdocs\MKF\lib\framework\class_root.php (275)
module_inscriptions -> after( )
#9 C:\xampp\htdocs\MKF\data\genere\e\public\index.php (47)
_root -> run( )
#10 {main}
Fichier : C:\xampp\htdocs\MKF\data\genere\e\plugin\plugin_formMultiRow.php ligne 217
Message : Undefined property: plugin_formMultiRow::$id
Qu'y a t'il sur cette ligne ?
plugin_formMultiRow.php , ligne 138
Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
Mes cours/tutoriaux
dans la fonction getSelect()
Code php : Sélectionner tout - Visualiser dans une fenêtre à part $sCurrentValue=$this->getValue($sName);
et ligne 217 ?
Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
Mes cours/tutoriaux
La ligne en gras est la 217
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 private function getValue($sName){ $tPost=_root::getParam($sName); if($this->isPost and isset($tPost[$this->id]) ){ return $tPost[$this->id]; }else if($this->tObject and isset($this->tObject[$this->i]->$sName)){ return $this->tObject[$this->i]->$sName; } return null; }
Essayons avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 private function getValue($sName){ $tPost=_root::getParam($sName); if($this->isPost and isset($this->id]) and isset($tPost[$this->id]) ){ return $tPost[$this->id]; }else if($this->tObject and isset($this->tObject[$this->i]->$sName)){ return $this->tObject[$this->i]->$sName; } return null; }
Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
Mes cours/tutoriaux
L'erreur n’apparaît plus. merci.
Il se passe des choses dans ce formulaire qui vraiment m’échappent. deux choses plus précisément:
1) j'ai remplacé mon champ 'annee' du formulaire de l'étape 2. plutôt que d'avoir un champ texte j'ai mis une combo box listant plusieurs années. Le remplissage de cette liste déroulante est fait avec un script javacript comme suit:
sur ma page web pourtant lorsque sont affichées les diplômes contenus dans $_SESSION['tdiplome'] le champ 'annee' prend des valeurs telles que 0 ou 2 ou 9 ...
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106 form action="" method="POST" > <fieldset style="width:90%"> <legend> Vos Diplômes / Formations</legend> <?php if(isset($_SESSION['tDiplome']) ):?> <?php foreach($_SESSION['tDiplome'] as $oDiplome):?> <table class="tb_new" > <?php $oForm->add($oDiplome) ?> <tr> <th>Type de diplôme :</th> <td><?php echo $oForm->getSelect('type_diplome_id',$this->tJoinmodel_type_diplomes);?></td> </tr> <tr> <th>Specialité :</th> <td><?php echo $oForm->getInputText('specialite')?></td> </tr> <tr> <th>Année d'obtention :</th> <td><?php echo $oForm->getInputText('annee')?></td> </tr> <tr> <th>Université / Ecole :</th> <td><?php echo $oForm->getInputText('universite')?></td> </tr> <tr> <th>Pays d'obtention :</th> <td><?php echo $oForm->getSelect('pays_id',$this->tJoinmodel_pays);?></td> </tr> <tr> <td><?php echo $oForm->getInputHidden('idDiplome') ?></td> <td><p></p></td> </tr> </table> <?php endforeach;?> <?php endif;?> <div id="diplome_new"> <table class="tb_new"> <?php $oForm->add(null) ?> <tr> <th>Type de diplôme :</th> <td><?php echo $oForm->getSelect('type_diplome_id',$this->tJoinmodel_type_diplomes);?></td> </tr> <tr> <th>Specialité :</th> <td><?php echo $oForm->getInputText('specialite')?></td> </tr> <tr> <th>Année d'obtention :</th> <td> <select name='annee' id='annee'> </select> </td> </tr> <script type='text/javascript'> var ceJour=new Date(), annee = ceJour.getFullYear(), selAnnee = document.getElementById('annee'); for (var i = 0; i <= 40; i++) { var monOption = document.createElement('option'); monOption.innerHTML = annee - i; monOption.value = annee - i; selAnnee.appendChild(monOption); } </script> <tr> <th>Université/Ecole :</th> <td><?php echo $oForm->getInputText('universite')?></td> </tr> <tr> <th>Pays d'obtention :</th> <td><?php echo $oForm->getSelect('pays_id',$this->tJoinmodel_pays);?></td> </tr> <tr> <td><?php echo $oForm->getInputHidden('idDiplome') ?></td> <td><p></p></td> </tr> </table> <hr/> </div> <div id="diplome_div"> </div> <input type="button" value="Ajouter" onclick="ajouterDiplome()"/> </fieldset>
Qu'est ce qui s'y passe? Aidez moi.
2) A chaque fois que je clique sur le bouton 'Ajouter' les ajout précédents se réinitialisent, comment contourner cela?
Merci pour le temps passé à mes préoccupations.
Je ne comprends pas pourquoi avoir fait ce menu déroulant en javascript ?
Pourquoi ne pas utiliser la méthode getSelect du plugin form ?
Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
Mes cours/tutoriaux
Bonjour,
j'ai utilisé JS car ce menu n'affiche pas des données provenant d'une table mais liste seulement des années(2015,2014,2013,2012,....1976,1975).
S'il est possible que j'utilise le control getSelect() du plugin_form comment faire en sorte que les options soient des années.
Je comprends mieux votre soucis
GetSelect n'est pas lié à une base de donnée mais "juste" à un tableau, pas forcément lié à une base donc
Il attend juste un tableau avec en clé la vrai donnée à mettre en base, en valeur le libellé
Par exemple pour les années:
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 $tAnnee=array(); for($i=1995;$i<=2015;$i++){ $tAnnee[$i]=$i; } $oPluginForm->getSelect('monCHamp',$tAnnee);
Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
Mes cours/tutoriaux
FORMIDABLE, tout a été pensé avec ce framework.
et à propos de ma seconde inquiétude?
2) A chaque fois que je clique sur le bouton 'Ajouter' les ajout précédents se réinitialisent, comment contourner cela?
Merci pour le temps passé à mes préoccupations.
Pour ça, il faut ne pas utiliser innerHtml mais la méthode dom addChild, j'avais répondu sur un autre topic sur ceci
dans l'idéé on créé un objet dom div, on y ajoute son code, puis on ajoute en enfant au dom au lieu de faire un innerHTML
Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
Mes cours/tutoriaux
J'ai donc modifié ces fonctions javascripts que vous m'aviez indiquées:en ceci
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 <script> function ajouterCompetence(){ var a=getById('competence_new'); var b=getById('competence_div'); console.log('o'); if(a && b){ console.log('b'); b.innerHTML+=a.innerHTML; } } function ajouterLangue(){ var a=getById('langue_new'); var b=getById('langue_div'); console.log('o'); if(a && b){ console.log('b'); b.innerHTML+=a.innerHTML; } } </script>Dans ma vue, j'ai ce code (POUR LES COMPETENCES) avec le bouton 'Ajouter'
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 <script> function ajouterCompetence(){ var a=getById('competence_new'); var b=getById('competence_div'); var oTr=document.createElement('tr') oTr.innerHTML=b.innerHTML; if(a){ a.appendChild(oTr); console.log('append oTr'); } } function ajouterLangue(){ var a=getById('langue_new'); var b=getById('langue_div'); var oTr=document.createElement('tr') oTr.innerHTML=b.innerHTML; if(a){ a.appendChild(oTr); console.log('append oTr'); } } </script>Quand j'exécute au clic sur 'Ajouter' rien ne se produit.
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 <div id="competence_new"> <table class="tb_new" > <?php $oForm->add(null) ?> <tr> <th>Intitulé :</th> <td><?php echo $oForm->getInputText('intitule')?></td> </tr> <tr> <th>Description: </th> <td> <?php $tOption = array(); echo $oForm->getInputTextarea('description',$tOption)?></td> </tr> <tr> <td><?php echo $oForm->getInputHidden('idCompetence') ?></td> <td><p></p></td> </tr> </table> <hr/> </div> <div id="competence_div"> </div> <input type="button" value="Ajouter" onclick="ajouterCompetence()"/>
PS: Pardon d'insister sur cela, c'est parce que je n'ai jamais touché au javascript. J'aimerais savoir si les modifications que j'ai apporté à ces fonctions sont correctes.
Merci
J'ai testé, il manquait un ";" sur la ligne
var oTr=document.createElement('tr');
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 <script> function ajouterCompetence(){ var a=getById('competence_new'); var b=getById('competence_div'); var oTr=document.createElement('tr'); oTr.innerHTML=b.innerHTML; if(a){ a.appendChild(oTr); console.log('append oTr'); } } function ajouterLangue(){ var a=getById('langue_new'); var b=getById('langue_div'); var oTr=document.createElement('tr'); oTr.innerHTML=b.innerHTML; if(a){ a.appendChild(oTr); console.log('append oTr'); } } </script>
Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
Mes cours/tutoriaux
Bonjour,
Merci pour le ";" manquant.
Mais c'est toujours pareil, au clic sur le bouton 'Ajouter' rien ne se passe.
C'est dû à quoi?
Il manque 2 ";" , le problème vient peut etre de la
Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
Mes cours/tutoriaux
J'ai mis les ";" au niveau des 2 fonctions!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager