如何使用新选项修复表格tableselect

时间:2019-04-30 06:51:07

标签: php ajax drupal drupal-7

我正在创建具有不同主题颜色的tableselect表单。一切正常,但是当我使用Ajax仅选择主题时,它并没有告诉我我在等待什么。它破坏了我的寻呼机(我还不知道如何解决),页眉(在ajax之后不起作用并且单击他后将我重定向到/ system / ajax ....)和行。    我的主要问题是行。我每页显示8行。当我只选择我的主题时,我只能看到4行(因为我只有4个主题)。当我点击ajax之后,它会显示4个主题和4个带有单选按钮的空行。我不明白为什么会这样。有人可以解决这个问题吗?

我正在尝试从头开始显示2行,但是在选择我的主题后,它仅显示2个主题,而其他两个主题在这里显示(寻呼机不起作用)。

$header = array(
        array('data' => 'id', 'field' => 'id', 'sort' => 'ASC'),
        array('data' => 'background'),
        array('data' => 'button'),
        array('data' => 'uid', 'field' => 'uid', 'sort' => 'ASC'),
        array('data' => 'name', 'field' => 'name', 'sort' => 'ASC'),
        array('data' => 'public', 'field' => 'public', 'sort' => 'ASC'),
    );
    $data = db_select('theming_colors', 'n')->extend('TableSort');
    $data = $data->fields('n', array('id', 'background', 'button', 'uid', 'name' , 'public'))
        ->extend('PagerDefault')
        ->limit(8)
        ->condition(db_or() ->condition('n.public', '1')->condition('n.uid', $user->uid))
        ->orderByHeader($header)
        ->execute()
        ->fetchAll();
    $options = array();
    foreach ($data as $node) {
        $options[$node->id] = array($node->id, $node->background, $node->button, $node->uid, $node->name , $node->public);
    }

这是我用寻呼机选择的桌子:

$form['table_with_buttons'] = array(
        '#type' => 'tableselect',
        '#header' => $header,
        '#options' => $options,
        '#multiple' => FALSE,
        '#ajax' => array(
            'event' => 'change',
            'callback' => 'getactions_list',
            'wrapper' => 'actionlist',
            'method' => 'replace',
            'effect' => 'fade',
        ),
        '#prefix' => '<div id="themetable">',
    );
    $form['pager']['#markup'] = theme('pager');
    $form['pager']['#suffix'] = '</div>';

和ajax函数:

function gettable_list($form, &$form_state){
    global $user;
    switch ($form_state['values']['theme_filter']) {
        case 'my':
            $data = db_select('theming_colors', 'n')->extend('TableSort');
            $data = $data->fields('n', array('id', 'background', 'button', 'uid', 'name' , 'public'))
                ->extend('PagerDefault')
                ->limit(8)
                ->condition('n.uid', $user->uid)
                ->execute()
                ->fetchAll();
            $options = array();
            foreach ($data as $node) {
                $options[$node->id] = array($node->id, $node->background, $node->button, $node->uid, $node->name , $node->public);
            }
            $form['pager']['#markup'] = theme('pager');
            $form['table_with_buttons']['#options'] = $options;
            $ccc = array($form['table_with_buttons'], $form['pager']);
            return $ccc;
            break;
    }
}

有人可以帮助或告诉问题出在哪里,或者至少如何解决该行? (更好的是说还可以解决排序和寻呼的问题。但是主要的问题是行。)谢谢大家!

0 个答案:

没有答案