Я создаю табличную форму с разными цветами темы.Все работает нормально, но когда я использую 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;
}
}
Может кто-нибудь помочь или подсказать, где проблема или как исправить хотя бы те строки?(Лучше было бы сказать, как исправить также сортировку и пейджер. Но главная проблема - строки.) Всем спасибо!