Title: PHP+Jquery &#8212; проблема с выводом значений в таблицу
Last modified: 06.07.2017

---

# PHP+Jquery — проблема с выводом значений в таблицу

 *  Решено [Chicago61](https://ru.wordpress.org/support/users/chicago61/)
 * (@chicago61)
 * [9 лет, 3 месяца назад](https://ru.wordpress.org/support/topic/phpjquery-%d0%bf%d1%80%d0%be%d0%b1%d0%bb%d0%b5%d0%bc%d0%b0-%d1%81-%d0%b2%d1%8b%d0%b2%d0%be%d0%b4%d0%be%d0%bc-%d0%b7%d0%bd%d0%b0%d1%87%d0%b5%d0%bd%d0%b8%d0%b9-%d0%b2-%d1%82%d0%b0%d0%b1%d0%bb%d0%b8/)
 * Добрый вечер друзья.
    Делаю сейчас параллельно 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 — проблема с выводом значений в таблицу» закрыта для новых ответов.

## Метки

 * [jQuery](https://ru.wordpress.org/support/topic-tag/jquery/)
 * [php](https://ru.wordpress.org/support/topic-tag/php/)

 * Форум: [Проблемы и решения](https://ru.wordpress.org/support/forum/how-to-and-troubleshooting/)
 * 0 ответов
 * 1 участник
 * Последний ответ: [Chicago61](https://ru.wordpress.org/support/users/chicago61/)
 * Последняя активность: [9 лет, 3 месяца назад](https://ru.wordpress.org/support/topic/phpjquery-%d0%bf%d1%80%d0%be%d0%b1%d0%bb%d0%b5%d0%bc%d0%b0-%d1%81-%d0%b2%d1%8b%d0%b2%d0%be%d0%b4%d0%be%d0%bc-%d0%b7%d0%bd%d0%b0%d1%87%d0%b5%d0%bd%d0%b8%d0%b9-%d0%b2-%d1%82%d0%b0%d0%b1%d0%bb%d0%b8/)
 * Статус: решённая

## Темы

### Самые популярные темы

### Темы без ответов

### Без вопроса

### Решённые

### Нерешённые

### Все темы
