2013-03-24 30 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; 
} 

Vì vậy, về cơ bản tôi muốn có biểu mẫu để tìm kiếm thứ gì đó từ cơ sở dữ liệu. Sau khi nhấp vào gửi để tìm kiếm và nhận kết quả.drupal 7 Cơ sở dữ liệu truy vấn và kết quả hiển thị sau khi gửi biểu mẫu trong mô-đun tùy chỉnh

Tôi muốn hiển thị kết quả ngay dưới biểu mẫu trong cùng một trang biểu mẫu. Không được chuyển đến trang khác, chỉ trong trang biểu mẫu gốc.

Biểu mẫu có thể được làm sạch/đặt lại thành trạng thái ban đầu, điều này là tốt.

http://drupal.org/node/542646 Thảo luận này là những gì tôi muốn, nhưng không có kết quả/giải pháp vững chắc ở đó.

Trả lời

9

Bạn có thể lưu trữ bảng đầu ra trong $form_state, đặt biểu mẫu để xây dựng lại và hiển thị biểu mẫu nếu nó tồn tại trong hàm biểu mẫu ban đầu, ví dụ:

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

Cảm ơn bạn. Thử nghiệm. Làm việc tốt. –

+0

Cảm ơn một tấn. Nó đã giúp. Và làm việc rất tốt. Nhưng nó không hoạt động với nút gửi Ajax. Vẫn giải quyết được vấn đề. – Aniruddhsinh

Các vấn đề liên quan