PHP+Jquery — проблема с выводом значений в таблицу
-
Добрый вечер друзья.
Делаю сейчас параллельно 2 сайта на Вордпрес и DLE. Столкнулся с небольшой проблемой и решил обратиться сюда, т.к. знаю — здесь люди грамотные…
В общем, данная конструкция выводит значения в таблицу, которая сортирует их по алфавиту. Т.е. например при нажатии на ссылку А должны показываться только имена на букву А и т.д.Код PHP:
<?php include ('engine/api/api.class.php'); // подключаем api $table = 'dle_post'; // название таблицы $fields = 'xfields'; // нужные поля, * - все поля $where = 'approve=1'; // условия выборки $multirow = 1; // забирать ли один ряд или несколько $start = 0; // начальное значение выборки $limit = 0; // количество записей для выборки, 0 - выбрать все $xfield = 'actor'; ///ИМЯ ДОП ПОЛЯ ДЛЯ ВЫВОДА $time = '14000'; //время жизни кеша $tr_new = 0; //В самом начале файла объявляем переменную $xfields = $dle_api->load_from_cache ($fields, $time, $xfields); //берем наш кеш, если есть конечно )) if( !$xfields ) { //проверяем взяли ли мы кеш и если не взяли, то делаем запрос $xfields = $dle_api->load_table ($table,$fields,$where,$multirow,$start,$limit); //делаем запрос к бд $dle_api->save_to_cache ( xfields, $xfields); //сохраняем в кеш } $stack = array(); //создаем пустой массив foreach($xfields as $value){ // перебор значений массива if($value[xfields]){ //проверяем есть ли элемент в массиве $row = xfieldsdataload($value[xfields]); //получаем нужное нам доп поле if($row[$xfield]){ //проверяем есть ли значение $rowdata = explode( ",", $row[$xfield]); //разбиваем наше значение на массив foreach($rowdata as $value){ //перебираем значения массива if($value){ //проверяем есть ли значение $value = trim($value); //убираем пробелы array_push($stack, $value); //добавляем в конец массива полученное значение asort($stack); //сортировка } } } } } $stack = array_count_values($stack); //считаем повторы и избавляемся от повторных значений foreach($stack as $key => $count){ //выводим окончательный вариант if($tr_new === 0){ //Если значение равно нулю открывает новый TR echo '<tr class="new">'; } echo "<td class='blok'>"; //открываем td echo "<a href=/" . $xfield . "/"; //открываем ссылку echo $key; //подставляем значение для поиска echo " target='_blank' rel='noopener'>"; echo $key; //имя ссылки echo "</a>"; //закрываем ссылку echo "<span>"; //открываем спан echo "(" . $count . ")";//кол-во повторов echo "</span>"; //закрываем спан echo "</td>"; //закрываем td $tr_new++; //Добавляем единицу if($tr_new === 1){ //Прошло 1 значение, значит закрываем TR и обнуляем счетчик echo '</tr>'; $tr_new = 0; } }
Теперь JQuery:
$(function () { var _alphabets = $('.alphabet > a'); var _contentRows = $('#countries-table tbody tr'); _alphabets.click(function () { var _letter = $(this), _text = $(this).text(), _count = 0; _alphabets.removeClass("active"); _letter.addClass("active"); _contentRows.hide(); _contentRows.each(function (i) { var _cellText = $(this).children('td').eq(0).text(); if (RegExp('^' + _text).test(_cellText)) { _count += 1; $(this).fadeIn(400); } }); }); });
Выводится на страницу так:
<div class="alphabet"> <a class="first" href="#">А</a> <a href="#">Б</a> <a href="#">В</a> и т.д. <a class="last" href="#">Я</a></div> <div id="conutries"> <table id="countries-table"> <tbody> {include file="/код.php"} </tbody> </table> </div> </div>
Все работает, однако столкнулся с такой проблемой — получается корректно вывести только одно значение в одну строку tr…
при попытке например вывести 4 значения в строку
if($tr_new === 4)
— они не сортируются по алфавиту, а просто выводятся вот так:
Как и что нужно подправить, чтобы все корректно работало?
Заранее спасибо за помощь!
- Тема «PHP+Jquery — проблема с выводом значений в таблицу» закрыта для новых ответов.