2012-02-13 2 views
0

J'ai un formulaire contenant un seul champ de texte, et le comportement attendu est que lorsque l'utilisateur appuie sur entrer alors que dans la zone de texte la valeur de la zone de texte devrait être soumis, mais sans re-page (actualiser) charger. J'ai essayé plusieurs façons de régler AHAH mais je n'arrive toujours pas à atteindre le comportement attendu, la page se recharge. J'ai cherché n'importe quelle solution à ce problème sans chance.désactiver le rechargement de la page en appuyant sur la touche appuyée sur le formulaire textfield dans drupal 6.x

S'il vous plaît conseiller comment il doit être fait ou me diriger quelque part utile Voici le code:

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; 
} 

Répondre

0

Got la solution, la voici:

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; 
} 
Questions connexes