[РЕШЕНО]Вывод данных из формы. Как?

Главные вкладки

Аватар пользователя simen simen 5 июля 2011 в 13:51

Подскажите плиз как под формой после ее отправки вывести данные из этой же формы.
Типа "Вы ввели: ...."

Вот так НЕ работает:

<?php

function myform($form_state) {
$form['mytext'] = array(
'#type' => 'textfield',
'#title' => t('My Text'),
'#description' => t('Введите текст'),
'#required' => TRUE,
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit'),
);

return $form;
}

function myform_submit($form, &$form_state) {
print "Вы ввели: ";
print $form_state['values']['mytext'];
}

print drupal_render(drupal_get_form('myform'));

?>

Комментарии

Аватар пользователя simen simen 5 июля 2011 в 14:26

Спасибо!
Но куда вставить эти строки?

Пробовал в конструктор:
Ошибка: Undefined index: values в функции myform()

Если в обработчик - то никаких изменений

Аватар пользователя simen simen 5 июля 2011 в 14:38

Вот так?

<?php

function myform($form_state) {
$form['mytext'] = array(
'#type' => 'textfield',
'#title' => t('My Text'),
'#description' => t('Введите текст'),
'#required' => TRUE,
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit'),
);
$form['data'] = array('#markup' => $form_state['values']['mytext']);
$form['#redirect'] = false;

return $form;
}

function myform_submit($form, &$form_state) {
print "Вы ввели: ";
print $form_state['values']['mytext'];
}

print drupal_render(drupal_get_form('myform'));

?>

Не работает ((
и получаю ошибку:
Notice: Undefined index: values в функции myform() (строка 14

Аватар пользователя xxandeadxx xxandeadxx 5 июля 2011 в 15:01

попробуйте так:

function myform($form, &$form_state) {
  ...
  $form['data'] = array('#markup' => isset($form_state['values']['mytext']) ? $form_state['values']['mytext'] : '');
  ...
}

function myform_submit($form, &$form_state) {
  $form_state['rebuild'] = true;
}

Аватар пользователя simen simen 5 июля 2011 в 15:14

Заработало!
Но текст выводится НАД формой, а нужно ПОСЛЕ.
Как исправить?

Вывод сейчас такой:

function myform_submit($form, &$form_state) {
$form_state['rebuild'] = true;
print "Вы ввели: ";
print $form_state['values']['mytext'];
}

Аватар пользователя simen simen 5 июля 2011 в 15:32

Спасибо за помощь
готов ее оплатить, если подскажете номер вашего WMR-кошелька

А где можно узнать о других способах?

Аватар пользователя simen simen 5 июля 2011 в 16:17

"xxandeadxx" wrote:
http://www.drupal.ru/node/64918#comment-362777[/quote]

Что-то я не понял.
Все же сделал как Вы указали и получил нужный мне текст ДО формы.

Единственно от себя добавил сам вывод:
print "Вы ввели: ";
print $form_state['values']['mytext'];

Если в точности выполнить ваши рекомендации:
function myform_submit($form, &$form_state) {
$form_state['rebuild'] = true;
}

то будет просто заполненная форма без всего текста ни до, ни после нее.

Где я ошибся?

Аватар пользователя simen simen 5 июля 2011 в 16:45

<?php

function myform($form_state) {
$form['mytext'] = array(
'#type' => 'textfield',
'#title' => t('My Text'),
'#description' => t('Введите текст'),
'#required' => TRUE,
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit'),
);
$form['data'] = array('#markup' => isset($form_state['values']['mytext']) ? $form_state['values']['mytext'] : '');

return $form;
}

function myform_submit($form, &$form_state) {
$form_state['rebuild'] = true;
}

print drupal_render(drupal_get_form('myform'));

?>

Не работает. Просто форма и все. Дополнительного текста нет.