Вопрос состоит в следующем: в своем модуле есть форма с 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>';
}?>
Спасибо всем за ответы
Комментарии
сессии, куки, БД..
или это плохое решение?)
Сохраняйте в $form_state. Посмотрите, как это реализуется в многошаговых формах.
Всем спасибо за ответы, сделал через сесии