Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
J'ai un formulaire et les dates je les gére de la façon suivantes:
j'ai mis trois select pour jour,mois et année
ensuite dans le controleur je les concatene avant de les mettre dans la base mysql(format annee-mois-jour)
aucun probleme à ce niveau
Alors lorsque je met une action qui permet de modifier cette formulaire alors j'utilise populate qui prend les données de la table et donc(la date vient avec le format mysql) de ce fait dans mon controleur j'ai des problemes parce que la date vient avec un format inattendu
Hors ligne
Si tu concatènes les données de ton formulaire pour l'enregistrement, il faut évidemment "parser" la concaténation pour en séparer les éléments.
Hors ligne
stp soit plus claire je comprends pas bien ce que tu veux dire
Hors ligne
Bonjour,
Ce que yvann veux dire, c'est que si tu effectue un traitement dans le sens [formulaire -> MySQL], il te faudra obligatoirement un traitement inverse pour que [MySQL -> formulaire] fonctionne
terrorist a écrit:
[...] dans le controleur je les concatene avant de les mettre dans la base mysql(format annee-mois-jour)
Il te faut donc un traitement qui fait le contraire, par exemple avec la fonction explode() -> http://www.php.net/manual/fr/function.explode.php
<?php $dateMySQL = "Annee-Mois-Jour"; list($annee, $mois, $jour) = explore("-", $dateMySQL); echo $annee; // Retourne "Annee" echo $mois; // Retourne "Mois" echo $jour; // Retourne "Jour"
Hors ligne
wi je connai explode parce que c avec ça que je transforme la date formulaire vers mysql.Mon probléme c'est dejà l'affichage.en fait lorsque j'appelle populate(pour modifier mon formulaire) ça affiche la date comme retournée par mysql(1990-02-10) alors que je veux que ça lui affiche(10-02-1990) comme c'est ce qu'il avait tapé lors de l'ajout
Hors ligne
Je ne vois vraiment pas l'intéret d'avoir une date dans 3 champs. Comment tu fais la validation de la date côté utilisateur ? (pour ne pas autoriser le 30 février par exemple).
HTML 5 arrivera avec son champs date (http://dev.w3.org/html5/markup/input.date.html) et tous les frameworks JS ont un calendar.
Hors ligne
Merci les gas mais je suis un peu confu.Je valide la date avec zend_validate.
et " Je ne vois vraiment pas l'intéret d'avoir une date dans 3 champs".qu'est ce tu veux dire par là?
Hors ligne
Un champs pour le jour, un champs pour le mois et un champs pour l'année => 3 champs (même s'ils sont de type select)
Zend_Validate te permet de valider côté serveur, pas du côté utilisateur.
Hors ligne
Donc est-ce tu peux me dire comment s'y prendre?Comment tu gére les dates?
Hors ligne
Perso, j'utilise jQuery.
Donc premièrement : création du champs text :
<input type="text" id="ma_date" value="2009-11-01"/>
Et en fin de HTML :
<script> $(function() { $('#ma_date').datepicker(); }); </script>
Hors ligne
pourquoi value="2009-11-01"?
Hors ligne
euh, au hasard
Hors ligne
mikaelkael a écrit:
Perso, j'utilise jQuery.
Donc premièrement : création du champs text :Code:
<input type="text" id="ma_date" value="2009-11-01"/>Et en fin de HTML :
Code:
<script> $(function() { $('#ma_date').datepicker(); }); </script>
Merci j'ai essayé mais j'ai que le champ input avec 2009-11-01 comme valeur mais j'ai pas vu de calendrier et pourtant j'ai la bibliothéque jquery.Est ce ça necessite autre chose?
Hors ligne
Hello,
Il faut aussi jQueryUI (http://jqueryui.com/) pour avoir le datepicker et j'ai un paramétrage par défaut des datepickers :
$.datepicker.setDefaults({ showOn: 'both', buttonImageOnly: true, buttonImage: 'images/calendar.gif', changeMonth: true, changeYear: true, dateFormat: 'yy-mm-dd', highlightWeek: true, firstDay: 1, showWeeks: true, firstDay: 1, changeFirstDay: false});
@+
Hors ligne
Merci beaucoup je vai essayer
Hors ligne
mikaelkael a écrit:
Hello,
Il faut aussi jQueryUI (http://jqueryui.com/) pour avoir le datepicker et j'ai un paramétrage par défaut des datepickers :Code:
$.datepicker.setDefaults({ showOn: 'both', buttonImageOnly: true, buttonImage: 'images/calendar.gif', changeMonth: true, changeYear: true, dateFormat: 'yy-mm-dd', highlightWeek: true, firstDay: 1, showWeeks: true, firstDay: 1, changeFirstDay: false});@+
Merci j'ai pu avoir un beau calendrier.Juste un parametre.Comment mettre l'année à la date que je veux.Par défaut je vois que c'est 1999?
Hors ligne