Мои любимые немногие ...
1: Javadoc, чтобы вставить документ о методе, являющемся методом инъекции объекта Spring.
Method to set the <code>I${enclosing_type}</code> implementation that this class will use.
*
* @param ${enclosing_method_arguments}<code>I${enclosing_type}</code> instance
2: Окно отладки, чтобы создать FileOutputStream и записать содержимое буфера в файл. Используется, когда вы хотите сравнить буфер с прошлым запуском (используя BeyondCompare), или если вы не можете просмотреть содержимое буфера (через inspect), потому что он слишком большой ...
java.io.FileOutputStream fos = new java.io.FileOutputStream( new java.io.File("c:\\x.x"));
fos.write(buffer.toString().getBytes());
fos.flush();
fos.close();
Вы можете использовать $ form_state ['storage'] в обработчике отправки для хранения значений между шагами. Так что добавьте функцию отправки, например, так:
function addnewproduct_form_submit ($form, &$form_state) {
// Store values
$form_state['storage']['addnewproduct_productname'] = $form_state['values']['productname'];
// Rebuild the form
$form_state['rebuild'] = TRUE;
}
Тогда ваша функция построителя форм станет:
function addnewproduct_form(&$form_state) {
$form = array();
$form['productname'] = array (
'#type' => 'textfield',
'#title' => t('Product Name'),
'#required' => TRUE,
'#size' => '20',
);
if (isset($form_state['storage']['addnewproduct_productname'])) {
$form['productname']['#default_value'] = $form_state['storage']['addnewproduct_productname'];
}
return $form;
}
Просто помните, что ваша форма будет генерироваться, пока ваш $ form_state ['storage'] заполнен. Таким образом, вам нужно будет настроить обработчик отправки и отключить ($ form_state ['storage']), когда будете готовы сохранять значения в базе данных и т. Д.
Если ваша форма больше похожа на фильтр, т.е. используется для отображения, а не для хранения информации, тогда вы можете обойтись простым
function addnewproduct_form_submit ($form, &$form_state) {
// Rebuild the form
$form_state['rebuild'] = TRUE;
}
. Когда форма перестраивается, она получит доступ к $ form_state ['values'] из предыдущей итерации.
Я обычно решаю эту проблему, помещая отправленное значение в переменную $ _SESSION в поле отправить крючок. Затем при следующей загрузке формы я проверяю переменную $ _SESSION на соответствующий ключ,
Не уверен, что это сработает для вас, но вы можете попробовать добавить ключ #default_value
в массив формы
$form['productname'] = array (
'#type' => 'textfield',
'#title' => t('Product Name'),
'#required' => TRUE,
'#size' => '20',
'#default_value' => variable_get('productname', ''),
);
. Таким образом, если переменная установлена, она будет возьмите все, что есть, но если нет, вы можете использовать значение по умолчанию.