Login Retreive lost passwordRegister
Search

Forum Index / NL Forum / Gebruik jsDateField met db veld jjjjmmdd

[ This topic is solved ]

  Rob Schulp 27 November 09 / 19:04  
Hallo,

Ik wil graag jsDateField gebruiken in combinatie met een databaseveld waar de datum als "jjjjmmdd" (8 cijfers) moet worden opgeslagen. Ik heb jsDateField met "ymd" ingesteld.

Als ik een willekeurige datum kies bij een nw. entry wordt hij keurig opgeslagen. Als ik daarna het formulier weer edit dan wordt niet een correcte datum getoond.

Is jsDateField te gebruiken voor het gebruik in deze format?

Alvast dank voor de response!

Rob

  Johan Wiegel (Admin) 27 November 09 / 19:43  
$form->jsDateField('datum','datum',null,null,'YMD');

zou dat moeten realiseren

  Rob Schulp 27 November 09 / 20:04  
Als ik hoofdletters gebruik dan verdwijnt de optie om een datum uit de kalender te kiezen. Verder liet hij bij de kleine letters nog het jaar correct zien, nu blijven de drie velden helemaal leeg.

Dit is wat ik had:
jsDateField( "Datum", "datum", null, null, 'ymd' );

  Johan Wiegel (Admin) 27 November 09 / 21:10  
gebruik dit even als test, dan weet je hoe of wat.
<?php
include("includes/FH3/class.dbFormHandler.php");

function 
fh_save($data)
{
print_r$data );
}

$form = new dbFormHandler("form_");
$form->jsDateField('datum','datum',null,null,'ymd');
$form->onCorrect'fh_save');
$form -> submitButton("Opslaan","Opslaan","class=\"edit_opslaan\"",true);
$form -> flush(false); 
?>

  Rob Schulp 27 November 09 / 21:52  
Bij de invoer wordt de datum goed weggeschreven. Ook als ik in de database kijk staat er keurig '20091127'. Als het formulier in de edit mode staat en de datum wordt opgehaald uit de database zie ik wel het jaar correct '2009' , de maand is leeg en voor de dag staat '07'.

Het lijkt m.n. dus mis te gaan bij het ophalen uit de db en het correct weergeven.

  Johan Wiegel (Admin) 27 November 09 / 22:05  
laat het mask eens leeg en kijk wat er dan gebeurd

  Rob Schulp 27 November 09 / 22:20  
Als ik het mask zo zet: '' dan is het gehele veld onzichtbaar en als ik alles na de tweede null weghaal is de werking identiek aan de correct ingevulde 'ymd'.

  Rob Schulp 01 December 09 / 21:42  
Werkt dit alleen bij mij niet goed?

  Johan Wiegel (Admin) 14 December 09 / 22:26  
ik zal hier morgen een testcase voor opzetten.

  Johan Wiegel (Admin) 15 December 09 / 08:00  
Changed at 15 December 09 / 08:00
Onderstaande werkt bij mij naar behoren.

<?php
$oForm
->jsDateField'Expiration_date''expiration_date',null,true,null,(DATE('Y')-2001).':2','style="width:auto;"' );
?>


Vergeten te vragen, maar het is toch wel een veld van het type date?
anders gaat het niet werken.

  Rob Schulp 21 December 09 / 13:04  
Nee, het is geen date veld maar een int. Ik word geacht het formaat jjjjmmdd te gebruiken omdat het anders met de uitwisseling niet goed gaat. met date houd ik altijd de streepjes.

  Johan Wiegel (Admin) 21 December 09 / 13:13  
Changed at 21 December 09 / 13:17
Een date type slaat op als yyyymmdd en is de enige juiste methode om een datum op te slaan, dat is ook het enige veld waar FH correct met de datums om gaat.date heeft geen streepjes in het veld staan, wellicht doet de tool waarmee je naar je database kijkt dit?

  Rob Schulp 21 December 09 / 15:18  
Ik werk met SQLYog en PHPmyAdmin en zie altijd streepjes. Vandaar dat ik in de veronderstelling was dat dit ook zo in de database staat. Dan is m'n probleem opgelost. Bedankt voor de info!

Rob

  Johan Wiegel (Admin) 21 December 09 / 15:20  
anders kun je met dateformat in je query het formaat aanpassen naar het gewenste formaat

  Rob Schulp 22 December 09 / 09:53  
Ik kom erachter dat als ik fh_conf('FH_DEFAULT_USEARRAYKEY') in config.inc op false zet de jsDateField de maand niet meer weergeeft. Is dit bekend?

  Johan Wiegel (Admin) 22 December 09 / 13:55  
ja dit is mij bekend

  Top


powered by PHP-GLOBE   © 2004 - 2012 FormHandler. All rights reserved.   -   Open source license