¿Cómo imprimiría los resultados de un envío de formulario en la misma página que el formulario en sí?Drupal: Cómo generar resultados del formulario en la misma página que el formulario
hook_menu Relevante:
$items['admin/content/ncbi_subsites/paths'] = array(
'title' => 'Paths',
'description' => 'Paths for a particular subsite',
'page callback' => 'ncbi_subsites_show_path_page',
'access arguments' => array('administer site configuration'),
'type' => MENU_LOCAL_TASK,
);
página de devolución de llamada:
function ncbi_subsites_show_path_page() {
$f = drupal_get_form('_ncbi_subsites_show_paths_form');
return $f;
}
Formulario función del edificio:
function _ncbi_subsites_show_paths_form() {
// bunch of code here
$form['subsite'] = array(
'#title' => t('Subsites'),
'#type' => 'select',
'#description' => 'Choose a subsite to get its paths',
'#default_value' => 'Choose a subsite',
'#options'=> $tmp,
);
$form['showthem'] = array(
'#type' => 'submit',
'#value' => 'Show paths',
'#submit' => array('ncbi_subsites_show_paths_submit'),
);
return $form;
}
Presentar la función (función de validación saltado por razones de brevedad)
function ncbi_subsites_show_paths_submit(&$form, &$form_state) {
//dpm ($form_state);
$subsite_name = $form_state['values']['subsite'];
$subsite = new Subsite($subsite_name); //y own class that I use internally in this module
$paths = $subsite->normalized_paths;
// build list
$list = theme_item_list($paths);
}
Si imprimo esa variable $ list, es exactamente lo que quiero, pero no estoy seguro de cómo ingresarla en la página con la página de formulario original creada a partir de 'ncbi_subsites_show_path_page'. ¡Cualquier ayuda es muy apreciada!
¡Gracias trabajar, gracias a este consejo. Sin embargo, la única forma en que podía "pasar" los datos de la función de envío a la función que representa el formulario es estableciendo variables globales en la función de envío, luego reconstruyendo el formulario y comprobando si esos valores variables están establecidos. Hay otra manera de hacer esto? No me gustan las variables globales. – Aaron
También en el ejemplo de ese enlace, puede ver $ form_state ['storage'] que se está utilizando. Creo que ['almacenamiento'] es un lugar dedicado donde puede almacenar datos de manera segura entre validaciones, envíos, etc. –
El problema es que no tengo acceso a $ form_state desde la función del manejador de página. Me gustaría almacenar algo en la matriz de almacenamiento de $ form_state, pero necesito ese valor en el controlador de página, no en la función de creación de formularios ... – Aaron