I have a created a function to be called by drupal_get_form() to build a custom form but the form_state doesn’t seem to be populated with any submitted values. Anyone know why this is the case?
function storyteller_filter_form(&$form_state,$type = null) {
echo '<pre>',print_r($form_state),'</pre>'; // post is empty on submit
/*
* Select options
*/
$books = array('0'=>'--');
$chapters = array('0'=>'--');
$pages = array('0'=>'--');
/*
* form configuration
*/
$form = array();
$form['book'] = array(
'#title'=>t('Book')
,'#type'=>'select'
,'#required'=>false
,'#options'=>&$books
);
$form['chapter'] = array(
'#title'=>t('Chapter')
,'#type'=>'select'
,'#required'=>false
,'#options'=>&$chapters
);
$form['page'] = array(
'#title'=>t('Page')
,'#type'=>'select'
,'#required'=>false
,'#options'=>&$pages
);
$form['submit'] = array(
'#type'=>'submit'
,'#value'=>'Submit'
,'#weight' => 40
);
/*
* Get the storyteller DAO
*/
$dao = dao_get('storyteller');
/*
* Load all books as select options
*/
foreach($dao->list_all_books() as $book) {
$books[$book['nid']] = $book['title'];
}
$books_id = 0;
foreach($books as $id=>$book) {
$books_id = $id;
break;
}
/*
* Load chapters for selected book
*/
foreach($dao->list_all_chapters('n.title,n.nid,c.chapter_number',sprintf("c.books_id = %s",db_escape_string($books_id))) as $chapter) {
$chapters[$chapter['nid']] = "{$chapter['chapter_number']}.) {$chapter['title']}";
}
$chapters_id = 0;
foreach($chapters as $id=>$chapter) {
$chapters_id = $id;
break;
}
/*
* Load pages for selected chapter
*/
foreach($dao->list_all_pages('p.page_number,n.nid',sprintf('p.chapters_id = %s',db_escape_string($chapters_id))) as $page) {
$pages[$page['nid']] = $page['page_number'];
}
return $form;
}
Edit:
Even the $_POST array seems to be empty upon submitting the form.