замучился - немогу заставить работать confirm_form. юзал его раньше, но из меню - всё ок было. Проблема такая - на форме есть 2 кнопки - у каждой свой обработчик. Вот код копки удаления и самой функции для подтверждения:
function qqq_del_www($form, &$form_state)
{
return drupal_get_form('qwe');
}
function qwe(&$form_state)
{
$form = array()
return confirm_form($form,
t('Are you sure you want to delete?'),
'ddd/sss/', t(''),$yes='Delete',$no='Cancel');
}
{
return drupal_get_form('qwe');
}
function qwe(&$form_state)
{
$form = array()
return confirm_form($form,
t('Are you sure you want to delete?'),
'ddd/sss/', t(''),$yes='Delete',$no='Cancel');
}
Где тут ошибка - в эту ересь упёрся - вроде сделал, начал сегодня - опять не работает. Подскажите, идеи умерли все.
Комментарии
что не работает то?
форма просто не появляется. Может недочитал но работает только так - делаю в меню колбак на друпал_форм, а в аргументе вызываю функцию с моей бедой. что перейти по этому адресу использую друпал_гоуту. Тогда форма появляется, но не могу юзать форму, то есть массив пукстой передаётся. Решить могу конечно вариаблой с отмеченными элементами, потом удалять её, но это же изврат. в общем непойму как быть. по любому я гоню, но где?!
что такое "друпал_форм"? если drupal_form, то в друпале нет такой ф-ии
что бы это значило? аргументы это массив, в массиве нельзя ничего вызывать
по какому "по этому"?
что за массив и куда он передаётся?
приведите полный код модуля или опишите задачу русским языком
сейчас.
{
$items['qqq/rrr/eee/%'] = array
(
'title' => 'ddd',
'page callback' => 'drupal_get_form',
'page arguments' => array('ddd_form',3),
'access arguments' => array('administer site configuration'),
'type' => MENU_CALLBACK,
);
return $items;
}
function vvv_form(&$form_state)
{
$form['submit_del'] = array
(
'#type' => 'submit',
'#value' => 'Удалить выбранные',
'#submit' => array('nnn_del'),
);
return $form;
}
function nnn_form($form, &$form_state)
{
drupal_goto('qqq/rrr/eee/'.arg(2));
}
function ddd_form($form_state, $hid)
{
$form = array();
$form['idban']=array
(
'#type' => 'hidden',
'#value' => $hid,
);
return confirm_form($form,
t('Вы действительно хотите удалить?'),'xyz'.$hid, t(''),$yes='Удалить',$no='Отменить');
}
вот и всё в принципе. это работает. может и нельзя и ненадо вообще этот $form_state передавать. Но смотрел рабочие коды - юзали его так. Понимаю что изврат, но красивеше чего то не хочет.