badge в select, чтобы показывать счетчик

Я ищу способ разворачивать список, который содержал бы количество студентов из-за салона а именно:

Эдж:

HTML

<div class="form-group">
   <select class="form-control" name="selecgrupo" id="selecgrupo">
     <option>Seleccione Grupo</option>
   </select>
</div>
<br>

JQUERY

$.ajax({
    url: 'list_group',
    type: 'POST',
})
.done(function(answer)
{
    var result = $.parseJSON(answer);

    for (var i = result.length - 1; i >= 0; i--)
    {                   
        $("#selecgrupo").append("<option value='" + result[i].id_grupo+ "'>" + result[i].grupo +  "</option>");
    }
})      
.fail(function(){
    console.log("error");
});

PHP

Возврати в JSON answer и с append я заношу в список id и группу и в HTML я показываю этот список...

CONTROLLER

public function list_group(){
   $response = $this->list_group_model->list_group();
   echo json_encode($response);
}

MODEL

public function list_group(){
   $sql= $this->db->conn_id->execute("
     SELECT id_group, group
     FROM grupos
     ORDER BY group DESC");   

   return $sql;
}

Эдж:

GRUPO A
GRUPO B
GRUPO C

Нужно заносить в список этот занеси в список с количеством студентов:
Эдж:

GRUPO A      20
GRUPO B      11
GRUPO C      30

Спасибо.

1
задан 02.01.2017, 17:09
0 ответов

Если то, в чем ты нуждаешься, что-то вроде следующее: (Выполнять код, чтобы отображать)

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.1/css/bootstrap-select.min.css">


<select class="selectpicker">
  <option data-content="<span class='label label-success'>50</span> GRUPO A ">GRUPO A</option>
  <option data-content="<span class='label label-success'>20</span> GRUPO B ">GRUPO B</option>
  <option data-content="<span class='label label-success'>30</span> GRUPO C ">GRUPO C</option>
</select>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.1/js/bootstrap-select.min.js"></script>

Ты должен иметь в виду следующее:

PHP

Менять консультацию, которая у тебя есть в Модели для того, чтобы он возвратил также количество студентов из-за группы, ej.

SELECT grupos.id_group, grupos.group, COUNT(estudiantes.id_estudienta) cant 
FROM grupos INNER JOIN estudiantes ON grupos.id_group = estudiantes.id_group 
GROUP BY grupos.id_group, grupos.group 
ORDER BY group DESC

HTML

Включать кроме bootstrap следующий книжный магазин, увеличенный для selects http://silviomoreto.github.io/bootstrap-select/

javascript

Твой язык сценариев JavaScript был бы должен оставаться похожим на это следующие:

for (var i = result.length - 1; i >= 0; i--)
{                   
   $("#selecgrupo").append("<option value='" + result[i].id_grupo+ "' data-content='<span class=\"label label-success\">" + result[i].cant + "</span> " + result[i].grupo + " '>" + result[i].grupo +  "</option>");
}
0
ответ дан 03.12.2019, 17:54
  • 1
    большое спасибо он подал мне твой комментарий –  02.01.2017, 18:10

Предполагая, что у тебя есть 3 подмостков:

  • Groups
  • Students
  • Group_study

Ты можешь делать group by и join, чтобы приносить количество студентов. Например:

select sg.group_id, g.name, count(s.student_id) as 'cant'
  from study_group sg
inner join groups g on sg.group_id = g.group_id
inner join students s on sg.student_id = s.student_id
group by sg.group_id, g.name order by g.name asc;

И в JS:

$.ajax({
  url: 'list_group',
  type: 'POST'
})
.done(groups => {
  groups.forEach(function (group) {
    $('#selecgrupo').append(
      `<option value="${group.group_id}">${group.grupo} - (${group.cantidad})</option>`
    );
  });
});

Ты renderizará немного как:

<option value="a294d">Grupo 1 - (45)</option>

Ты можешь видеть этот sqlfiddle для того, чтобы ты это протестировал.

0
ответ дан 03.12.2019, 17:54
  • 1
    большое спасибо твой комментарий был много помощи –  02.01.2017, 18:11
  • 2
    Не за что. Помни что голосуй и(или) помечает ответ, который ты считаешь правильным. –  02.01.2017, 18:12

Теги

Похожие вопросы