Index du Forum » » SFORM

Auteur

SForm et date
Pascal
415      

  Posté : 26-02-2003 14:33

Bon ça va être long.
J'ai besoin d'un champs date pour l'enregistrer dans la base ou ailleurs.

On rajoute une fonction :
/****************************************************************************** ********/
// ajout un champs date de type hidden
// appel avec add_date(), add_date(nom), add_date("nom","Today") pexemple
// public void
function add_date($name='date', $en='Le') {
$this->form_fields[count($this->form_fields)]=array(
'en'=>$en,
'name'=>$name,
'value'=>strtotime("now"),
'type'=>"date"
);
}

Dans la fonction print_form on rajoute :

case 'date':
$str.="<input class=\"hidden\" type=hidden name='".$this->form_fields[$i]['name']."' value='".$this->form_fields[$i]['value']."'>";
break;

Ca crée un champs hidden avec le timestamp

Dans la fonction make_response on rajoute :

case 'date':
// Charge la valeur de la clef puisqu'on peut indexer sur la date pourquoi pas
if ($this->form_fields[$i]['name']==$this->form_key) {
$this->form_key_value=$GLOBALS[$this->form_fields[$i]['name']];
}
$this->answer[$i].="<DATE>\n";
$this->answer[$i].="<".$this->form_fields[$i]['name']." >".$this->form_fields[$i]['value']."</".$this->form_ fields[$i]['name'].">\n";
$this->answer[$i].="</DATE>";
break;

Ce qui à pour effet d'une part de rajouter une balise <DATE> dans la réponse, et d'autre part d'utiliser cette date comme index pour la base de donnée, index que l'on crée (petit rappel...) avec : add_key(nom)

Enfin dans la fonction aff_response on rajoute :

// Ajout du formatage de la date
case 'date':
$str.="<tr bgcolor=$bg><td>".$this->form_fields[$i]['en'];
$str.="<td>";
$str.="<b>".date("d-m-Y",$GLOBALS[$this->form_fiel ds[$i]['name']])."&nbsp;</b>";
break;

Voilou pour l'instant, reste à modifier 2 3 trucs mais ceux qu'en avait besoin ont deja une base



Cet article provient de NPDS

http://www.npds.org/viewtopic.php?topic=4509&forum=19