Помогите ожулуйста с confirm_form

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

Аватар пользователя monsterofcode monsterofcode 7 ноября 2010 в 13:07

замучился - немогу заставить работать 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');
}

Где тут ошибка - в эту ересь упёрся - вроде сделал, начал сегодня - опять не работает. Подскажите, идеи умерли все.

Комментарии

Аватар пользователя monsterofcode monsterofcode 7 ноября 2010 в 13:35

форма просто не появляется. Может недочитал но работает только так - делаю в меню колбак на друпал_форм, а в аргументе вызываю функцию с моей бедой. что перейти по этому адресу использую друпал_гоуту. Тогда форма появляется, но не могу юзать форму, то есть массив пукстой передаётся. Решить могу конечно вариаблой с отмеченными элементами, потом удалять её, но это же изврат. в общем непойму как быть. по любому я гоню, но где?!

Аватар пользователя xxandeadxx xxandeadxx 7 ноября 2010 в 13:48

"monsterofcode" wrote:
делаю в меню колбак на друпал_форм

что такое "друпал_форм"? если drupal_form, то в друпале нет такой ф-ии

"monsterofcode" wrote:
а в аргументе вызываю функцию с моей бедой

что бы это значило? аргументы это массив, в массиве нельзя ничего вызывать

"monsterofcode" wrote:
что перейти по этому адресу использую друпал_гоуту

по какому "по этому"?

"monsterofcode" wrote:
но не могу юзать форму, то есть массив пукстой передаётся

что за массив и куда он передаётся?

приведите полный код модуля или опишите задачу русским языком

Аватар пользователя monsterofcode monsterofcode 7 ноября 2010 в 14:08

сейчас.

function aaa_menu()
{
    $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 передавать. Но смотрел рабочие коды - юзали его так. Понимаю что изврат, но красивеше чего то не хочет.