Bonjour,
Je ne sais plus dans quel sens l'héritage fonctionne, si en théorie mais la pratique est une autre chose....
Mon site est en ligne pour l'instant; www.jecrapahute.fr
Il se compose d'une classe Form et d'une Classe Field que viennent redéfinir les classes fonction du type de champ.
J'ai un compteur définit dans Form (cntFilled) et incrémenté dans Field.
Ma forme est complète et j'ai toujours cntFilled == 0 ??????
Tout se passe dans validate.php que je mets en pièce attachée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part PHP Notice: stillFill[0] - cntFilled[0] in F:\WebSites\checkform\class\validate.php on line 142
Le code de Form::getMsg()est à regarder:
Ainsi que dans Field les endroit où j'incrémente mon compteur:
Code : 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 /** * getMsg * ====== */ function getMsg() // Public car function appelée du formulaire... { // // affichage du message inférieur // ============================== if ($this->isFormValid() ) { user_error("stillFill[".$this->stillFill."] - cntFilled[".$this->cntFilled."]" , E_USER_NOTICE) ; if ($this->cntFilled) if ($this->stillFill) $this->msg = STILL ; else $this->msg = OK ; else if ($this->stillFill) $this->msg = STILL ; else $this->msg = VIDE ; } else { if ($this->cntFilled) if ($this->stillFill) $this->msg = STILL ; else $this->msg = KO ; else if ($this->stillFill) $this->msg = STILL ; else $this->msg = KO ; } return( $this->tabMsg[$this->msg] ) ; }
Et ici
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9case SELECT : if ( isset($_POST[$this->name] ) ) if ($_POST[$this->name] == 0) { $this->stackMessage(sprintf(NOTZERO , $this->name )) ; } else { $this->cntValid++ ; 271 => $this->cntFilled++ ; }
En principe, les classes enfants heritent des parents, ce qui est - je crois - l'inverse de ce que je souhaite faire !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14/** * ifFilled * */ function ifFilled($debug) { if ($rc = (!empty($this->value))) { 384 > $this->cntFilled++ ; if ($debug) user_error("ifFilled[".$this->name."][".$this->value."][".$this->len."][".$rc."]" , E_USER_NOTICE) ;return( $rc ) ; return(true) ; } else return(false) ; }
Ou alors je dois comprendre qu'une propriété définie au niveau parent, peut être utilisée au niveau enfant, alors l'erreur est autre part...
J'ai utilisé parent:: sans succès...
Cela doit être con mais je ne vois pas... je souhaiterais connaitre le bon raisonnement, merci !!!!
Merci à ceusssss qui me sortiront de là !![]()









Répondre avec citation
Partager