我最近更改了表單以使用Ajax提交數據。我的表單以(mm-dd-yyyy)格式接受用戶的日期,並且在此更改之前,我的hook_submit如下所示,在將它發送到數據庫之前將它轉換爲(yyyy-mm-dd)格式。更改後,它跳過該步驟並按照原樣將日期值發送到數據庫。
我不介意找到或編寫自己的函數來完成轉換,但我首先想在做之前先理解這個性質。也許我會學到一些能夠幫助我的東西。
任何幫助,將不勝感激。
我的問題是,爲什麼我的日期值轉換爲$ form_data而不是$ form_state?
使用Drupal的7
模塊:日期API,CTools,
//Original submit handler
//Format sent to DB: yyyy-mm-dd <--This is what I want for the Ajax version
function fsa_roster_form_submit($form_id, &$form_data){
$dcc_table = 'dcc_'.$form_data['values']['sid'];
$insertDaycare = db_insert($dcc_table)
->fields(array(
'entered' => $form_data['values']['date_entered'],
'exited' => $form_data['values']['date_exited'],
))
->execute();
}
//Ajaxed submit handler:
//Format sent to DB: mm-dd-yyyy
function fsa_roster_form_ajax_submit($form, $form_state) {
$dcc_table = 'dcc_'.$form_state['input']['sid'];
$insertRoster = db_insert($dcc_table)
->fields(array(
'entered' => $form_state['input']['date_entered'],
'exited' => $form_state['input']['date_exited'],
))
->execute();
}
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Save Entry'),
'#prefix' => '<div id="modalSubmit">',
'#ajax' => array(//Remove this from your imagination for original submit handler
'callback' => 'fsa_daycare_roster_form_ajax_submit',
'wrapper' => 'msgBox',
'method' => 'replace',
'effect' => 'fade',
),
'#suffix' => '</div><script>addValidationEvents();</script>'
);
而不是編碼,你有沒有嘗試在drupal配置中更改「日期格式」?所以所有的日期都以這種格式輸出.. – Gntem 2012-07-26 05:49:37