2013-03-24 2 views
5
function mymodule_search_form($form, &$form_state) { 

    $form..... define the form here 

    $form['submit'] = array(
    '#type' => 'submit', 
    '#value' => 'Search', 
); 

    return $form; 
} 

function mymodule_search_form_submit($form, &$form_state) { 

    //process the form and get result 
    $output = this is the result with a table of data. 
    //I want to display the result table here. 

//Now I can only use drupal message to display on top. 
drupal_set_message($output); 

    return; 
} 

Quindi, in pratica, voglio avere un modulo per cercare qualcosa dal database. Dopo aver fatto clic su invia per cercare e ottenere il risultato.drupal 7 Interroga il database e visualizza i risultati dopo che il modulo è stato inviato nel modulo personalizzato

Desidero visualizzare il risultato sotto il modulo nella stessa pagina di modulo. Non andare in un'altra pagina, solo nella pagina del modulo originale.

Il modulo può essere pulito/ripristinato nello stato originale, che va bene.

http://drupal.org/node/542646 Questa discussione è ciò che voglio, ma non sembra un risultato/soluzione solidi.

risposta

9

È possibile memorizzare la tabella di output in $form_state, impostare il modulo da ricostruire e visualizzarlo se esiste nella funzione di modulo originale, ad es.

function mymodule_search_form($form, &$form_state) { 

    $form..... define the form here 

    if (!empty($form_state['results_table'])) { 
    $form['results_table'] = array('#markup' => $form_state['results_table']); 
    } 

    $form['submit'] = array(
    '#type' => 'submit', 
    '#value' => 'Search', 
); 

    return $form; 
} 

function mymodule_search_form_submit($form, &$form_state) { 
    $form_state['results_table'] = function_to_get_table(); 
    $form_state['rebuild'] = TRUE; 
} 
+0

Grazie. Provato. Ha funzionato bene –

+0

Grazie mille. Ha aiutato. E ha funzionato molto bene. Ma non ha funzionato con il pulsante di invio Ajax. Ancora risolto il problema. – Aniruddhsinh