최근 양식을 변경하여 Ajax를 사용하여 데이터를 제출했습니다. 내 양식은 (mm-dd-yyyy) 형식으로 사용자의 날짜를 수락하고이 변경 전에 DB에 보내기 전에 아래 보이는 hook_submit을 yyyy-mm-dd 형식으로 변환합니다. . 변경 후에는 해당 단계를 건너 뛰고 날짜 값을있는 그대로 DB로 보냅니다.
변환을 수행 할 자체 함수를 찾거나 쓰지 않아도 되겠지만 먼저이 특성을 이해하고 싶습니다. 나중에 나에게 도움이 될만한 것을 배울 것입니다.
도움을 주시면 감사하겠습니다.
제 질문은 왜 내 날짜 값이 $ form_stata가 아닌 $ form_data로 변환 되었습니까?
모듈 드루팔 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