2012-02-13 1 views
0

양식이 하나 뿐인데 사용자가 입력란을 누른 상태에서 텍스트 상자의 값을 입력해야만 예상되는 동작이 발생합니다. 제출되지만 재 페이지 (새로 고침)로드가 없습니다. 나는 AHAH를 설정하는 여러 가지 방법을 시도했지만 여전히 예상되는 동작을 달성 할 수 없으며 페이지가 다시로드됩니다. 행운을 들이지 않고이 문제에 대한 해결책을 모색했습니다.입력시 페이지 재로드 비활성화 drupal 6.x

가 수행되어야 어떻게 조언을 주시기 바랍니다 또는 나를 여기에 유용한 곳 직접입니다 코드 :

function user_porfile_message_form(){ 
    $form = array(); 

    $form['element1'] = array(
    '#type' => 'textfield', 
    '#title' => '', 
    '#default_value' => '', 
); 

    $form['submit'] = array(
    '#type' => 'submit', 
    '#value' => t('Save'), 
    '#attributes' => array('class' => 'no-js'), 
    '#ahah' => array(
     'path' => 'module/file/callback', 
     'wrapper' => 'some-wrapper', 
     'event' => 'click', 
    ), 
); 
    return $form; 
} 

답변

0

가, 여기가 솔루션입니다 당함 :

function some_form(&$form_state){ 
    $form = array(); 
     $form['text'] = array(
      '#value' => "Text", 
      '#prefix' => '<div id="some-wrapper">', 
      '#suffix' => '</div>', 
     ); 

    $form['text_input'] = array(
    '#type' => 'textfield', 
    '#title' => '', 
    '#default_value' => '', 
); 

    $form['submit'] = array(
    '#type' => 'submit', 
    '#value' => t('Save'), 
     '#attributes' => array('class' => 'no-js'), 
    '#ahah' => array(
     'path' => 'module/file/callback', 
     'wrapper' => 'some-wrapper', 
     'event' => 'click', 
    ), 
); 
    return $form; 
} 

function some_form_submit(){ 
//Do whatever has to be done for submission 
} 

function some_form_callback(){ 
    $form_state = array('storage' => NULL, 'submitted' => FALSE); 

    $form_build_id = $_POST['form_build_id']; 
    $form = form_get_cache($form_build_id, $form_state); 
    $args = $form['#parameters']; 
    $form_id = array_shift($args); 
    $form_state['post'] = $form['#post'] = $_POST; 

    $form['#programmed'] = $form['#redirect'] = FALSE; 
    drupal_process_form($form_id, $form, $form_state); 
    $form = drupal_rebuild_form($form_id, $form_state, $args, $form_build_id); 

    $changed_elements = $form['text']; 

    unset($changed_elements['#prefix'], $changed_elements['#suffix']); 
    drupal_json(array(
     'status' => TRUE, 
     'data'  => drupal_render($changed_elements),)); 
} 

/** 
* Implement hook_menu(). 
*/ 
function module_menu(){ 
    $items['module/file/callback'] = array(
    'page callback' => 'some_form_callback', 
    'access callback' => TRUE, 
    'file' => 'module.module', 
    'type' => MENU_CALLBACK, 
); 
    return $items; 
}