Временное сохранение массива на стороне сервера для формы с 2-я ajax сабмитами

Аватар пользователя stillfinder stillfinder 6 сентября 2013 в 11:14

Вопрос состоит в следующем: в своем модуле есть форма с 2-я сабмитами, которые работают по аяксу. Нужно чтобы при нажатии первого сабмита, на стороне сервера происходило сохранение массива с числами, который будет доступен при нажатии на второй сабмит. Ищу наиболее правильный вариант реализации, возможно не совсем правильная формулировка "сохранение на стороне сервера", но думаю суть все поняли. Теперь код:

Сама форма

<?phpfunction bublesort_form($form, &$form_state) {
    
$form=array();
    
    
$form['result'] = array(
        
'#title' => 'Result',
        
'#description' => 'decs.',
        
'#prefix' => '<div id="canvas_result_div">'
        
'#suffix' => '</div>'
    );
    
    
$form['shuffle'] = array(
        
'#type' => 'submit',
        
'#value' => t('Shuffle'),
        
'#name' => 'shuffle',
        
'#ajax' => array(
            
'callback' => 'shuffle_ajax_submit',
            
'wrapper' => 'canvas_result_div',
        ),
    );
    
    
$form['step'] = array(
        
'#type' => 'submit',
        
'#value' => t('Step'),
        
'#name' => 'step',        
        
'#ajax' => array(
            
'callback' => 'step_ajax_submit',
            
'wrapper' => 'canvas_result_div',
        ),
    );
    
    return 
$form;
}
?>

Первый submit

<?phpfunction shuffle_ajax_submit($form, &$form_state) {
    
$numbers rand_range(0,100,10); // массив который нужно сохранить
    
$result numbers_list_to_html($numbers);
    return 
'<div id="canvas_result_div">'.$result.'</div>';
}
?>

Второй submit

<?phpfunction step_ajax_submit($form, &$form_state) {
        
// здесь нужно получить значения массива $numbers из первого сабмита
        // $numbers = ???
    
return '<div id="canvas_result_div">'.$result.'</div>';
}
?>

Спасибо всем за ответы

0 Thanks

Комментарии

Аватар пользователя noneart noneart 6 сентября 2013 в 12:12

тоже ищу ответ на этот вопрос. пока что использую временное решение - сессии

<?php
$_SESSION
["first_step_numbers"] = $numbers;
?>

а вот тут наверное можно найти наиболее правильное решение:
http://www.jaypan.com/tutorial/drupal-7-ajax-driven-multi-step-forms-non...
http://drupalace.ru/lesson/mnogoshagovye-multistep-formy-na-ajax-v-drupal-7
http://internetdevels.ru/blog/ctools-multistep-wizard-example