Scrollable box containing list of Checkboxes in HTML

IframeHtmlCheckboxScrollable

Iframe Problem Overview


Attached you'll see a picture of a mock up I did for the required UI. As you can see I need some type of scrollable box that contains checkboxes.

enter image description here

I've thought of a scrollable div, although I can't find a way to set a border around a div? Second I thought of an IFrame.. But also not too sure if this is my best option.

Does anybody perhaps have an easier/better way of doing this?

Thanks in advance!

Iframe Solutions


Solution 1 - Iframe

CSS:

.container { border:2px solid #ccc; width:300px; height: 100px; overflow-y: scroll; }

HTML:

<div class="container">
    <input type="checkbox" /> This is checkbox <br />
    <input type="checkbox" /> This is checkbox <br />
    <input type="checkbox" /> This is checkbox <br />
    <input type="checkbox" /> This is checkbox <br />
    <input type="checkbox" /> This is checkbox <br />
    <input type="checkbox" /> This is checkbox <br />
    <input type="checkbox" /> This is checkbox <br />
    <input type="checkbox" /> This is checkbox <br />
    <input type="checkbox" /> This is checkbox <br />
    <input type="checkbox" /> This is checkbox <br />
</div>

How it looks:

design

Is this what you are looking for?

Solution 2 - Iframe

<style type="text/css">
   select, ul { height: 100px; overflow: auto; width: 100px; border: 1px solid #000; }
   ul { list-style-type: none; margin: 0; padding: 0; overflow-x: hidden; }
   li { margin: 0; padding: 0; }
   label { display: block; color: WindowText; background-color: Window; margin: 0; padding: 0; width: 100%; }
   label:hover { background-color: Highlight; color: HighlightText; }
  </style>
<ul>
   <li><label for="chk1"><input type="checkbox" name="chk1" id="chk1">First</label></li>
   <li><label for="chk2"><input type="checkbox" name="chk2" id="chk2">Second</label></li>
   <li><label for="chk3"><input type="checkbox" name="chk3" id="chk3">Third</label></li>
   <li><label for="chk4"><input type="checkbox" name="chk4" id="chk4">Fourth</label></li>
   <li><label for="chk5"><input type="checkbox" name="chk5" id="chk5">Fifth</label></li>
   <li><label for="chk6"><input type="checkbox" name="chk6" id="chk6">Sixth</label></li>
   <li><label for="chk7"><input type="checkbox" name="chk7" id="chk7">Seventh</label></li>
  </ul>

http://krijnhoetmer.nl/stuff/html/select-multiple-checkbox-list/

Solution 3 - Iframe

A variant:

function obtenerSeleccionados() {
  var seleccionados = [];
  $('.contenedor input:checked').each(function() {
    seleccionados.push($(this).attr('id'));
  });
  alert(seleccionados);
}

.contenedor {
  border: 1px solid grey;
  width: 200px;
  height: 200px;
  overflow-y: scroll;
  position: fixed;
  background: white;
  margin-top: 2px;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div>

  Hito:

  <input id='btnAbrirFiltro' type="button" value="Filtro múltiple" onclick="$('.contenedor').toggle();$('#btnFiltrar').toggle();$('#btnAbrirFiltro').toggle();$('#btnCerrarFiltro').toggle();">

  <input id='btnCerrarFiltro' type="button" value="Cerrar" style="display: none;" onclick="$('.contenedor').toggle();$('#btnFiltrar').toggle();$('#btnAbrirFiltro').toggle();$('#btnCerrarFiltro').toggle();">

  <input id='btnFiltrar' type="button" value="Filtrar" style="display: none;" onclick="obtenerSeleccionados()">

  <div class="contenedor" style="display: none;">
    <input id="cfh_1" type="checkbox" /> Hito 1
    <br />
    <input id="cfh_2" type="checkbox" /> Hito 2
    <br />
    <input id="cfh_3" type="checkbox" /> Hito 3
    <br />
    <input id="cfh_4" type="checkbox" /> Hito 4
    <br />
    <input id="cfh_5" type="checkbox" /> Hito 5
    <br />
    <input id="cfh_7" type="checkbox" /> Hito 6
    <br />
    <input id="cfh_8" type="checkbox" /> Hito 7
    <br />
    <input id="cfh_4567" type="checkbox" /> Hito 8
    <br />
    <input id="cfh_345" type="checkbox" /> Hito Implementación final del evento
    <br />
    <input id="cfh_45671" type="checkbox" /> Hito a8
    <br />
    <input id="cfh_45672" type="checkbox" /> Hito s8
    <br />
    <input id="cfh_45673" type="checkbox" /> Hito d8
    <br />
    <input id="cfh_45674" type="checkbox" /> Hito f8
    <br />
    <input id="cfh_45675" type="checkbox" /> Hito g8
    <br />
  </div>

</div>

Lorem ipsum dolor sit amet, libero nullam dolor, auctor consequat. Risus donec nunc nulla maecenas, at mattis, arcu tempor. Faucibus velit vitae arcu mauris, sem blandit elementum. Conubia pede interdum urna suspendisse eget. Vestibulum malesuada amet
ac vel ligula, leo aenean, ac ultrices nec class, consectetuer adipiscing massa in sint morbi justo, sit maecenas a sit. Enim molestie, porta enim, dolor suscipit sagittis, donec ornare sed aenean aliquet parturient blandit. Quisque nisl tempus arcu lobortis
massa quis, pede praesent nulla et eget sed, facilisi nunc elit erat. Volutpat mauris pellentesque magna aliquam dolor facilisi. Nec orci, nunc imperdiet feugiat. Erat est vestibulum nec et, eu eros tempus morbi netus, congue pellentesque vivamus, tellus
eleifend maecenas mus sodales blandit et, sed vulputate rhoncus lobortis amet id inceptos. Magna vestibulum elit vel aenean, aliquam praesent vestibulum sed fringilla amet volutpat, cras mauris suscipit pretium.

Solution 4 - Iframe

function obtenerSeleccionados() {
  var seleccionados = [];
  $('.contenedor input:checked').each(function() {
    seleccionados.push($(this).attr('id'));
  });
  alert(seleccionados);
}

.contenedor {
  border: 1px solid grey;
  width: 200px;
  height: 200px;
  overflow-y: scroll;
  position: fixed;
  background: white;
  margin-top: 2px;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div>

  Hito:

  <input id='btnAbrirFiltro' type="button" value="Filtro múltiple" onclick="$('.contenedor').toggle();$('#btnFiltrar').toggle();$('#btnAbrirFiltro').toggle();$('#btnCerrarFiltro').toggle();">

  <input id='btnCerrarFiltro' type="button" value="Cerrar" style="display: none;" onclick="$('.contenedor').toggle();$('#btnFiltrar').toggle();$('#btnAbrirFiltro').toggle();$('#btnCerrarFiltro').toggle();">

  <input id='btnFiltrar' type="button" value="Filtrar" style="display: none;" onclick="obtenerSeleccionados()">

  <div class="contenedor" style="display: none;">
    <input id="cfh_1" type="checkbox" /> Hito 1
    <br />
    <input id="cfh_2" type="checkbox" /> Hito 2
    <br />
    <input id="cfh_3" type="checkbox" /> Hito 3
    <br />
    <input id="cfh_4" type="checkbox" /> Hito 4
    <br />
    <input id="cfh_5" type="checkbox" /> Hito 5
    <br />
    <input id="cfh_7" type="checkbox" /> Hito 6
    <br />
    <input id="cfh_8" type="checkbox" /> Hito 7
    <br />
    <input id="cfh_4567" type="checkbox" /> Hito 8
    <br />
    <input id="cfh_345" type="checkbox" /> Hito Implementación final del evento
    <br />
    <input id="cfh_45671" type="checkbox" /> Hito a8
    <br />
    <input id="cfh_45672" type="checkbox" /> Hito s8
    <br />
    <input id="cfh_45673" type="checkbox" /> Hito d8
    <br />
    <input id="cfh_45674" type="checkbox" /> Hito f8
    <br />
    <input id="cfh_45675" type="checkbox" /> Hito g8
    <br />
  </div>

</div>

Lorem ipsum dolor sit amet, libero nullam dolor, auctor consequat. Risus donec nunc nulla maecenas, at mattis, arcu tempor. Faucibus velit vitae arcu mauris, sem blandit elementum. Conubia pede interdum urna suspendisse eget. Vestibulum malesuada amet
ac vel ligula, leo aenean, ac ultrices nec class, consectetuer adipiscing massa in sint morbi justo, sit maecenas a sit. Enim molestie, porta enim, dolor suscipit sagittis, donec ornare sed aenean aliquet parturient blandit. Quisque nisl tempus arcu lobortis
massa quis, pede praesent nulla et eget sed, facilisi nunc elit erat. Volutpat mauris pellentesque magna aliquam dolor facilisi. Nec orci, nunc imperdiet feugiat. Erat est vestibulum nec et, eu eros tempus morbi netus, congue pellentesque vivamus, tellus
eleifend maecenas mus sodales blandit et, sed vulputate rhoncus lobortis amet id inceptos. Magna vestibulum elit vel aenean, aliquam praesent vestibulum sed fringilla amet volutpat, cras mauris suscipit pretium.

function obtenerSeleccionados() {
  var seleccionados = [];
  $('.contenedor input:checked').each(function() {
    seleccionados.push($(this).attr('id'));
  });
  alert(seleccionados);
}

.contenedor {
  border: 1px solid grey;
  width: 200px;
  height: 200px;
  overflow-y: scroll;
  position: fixed;
  background: white;
  margin-top: 2px;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div>

  Hito:

  <input id='btnAbrirFiltro' type="button" value="Filtro múltiple" onclick="$('.contenedor').toggle();$('#btnFiltrar').toggle();$('#btnAbrirFiltro').toggle();$('#btnCerrarFiltro').toggle();">

  <input id='btnCerrarFiltro' type="button" value="Cerrar" style="display: none;" onclick="$('.contenedor').toggle();$('#btnFiltrar').toggle();$('#btnAbrirFiltro').toggle();$('#btnCerrarFiltro').toggle();">

  <input id='btnFiltrar' type="button" value="Filtrar" style="display: none;" onclick="obtenerSeleccionados()">

  <div class="contenedor" style="display: none;">
    <input id="cfh_1" type="checkbox" /> Hito 1
    <br />
    <input id="cfh_2" type="checkbox" /> Hito 2
    <br />
    <input id="cfh_3" type="checkbox" /> Hito 3
    <br />
    <input id="cfh_4" type="checkbox" /> Hito 4
    <br />
    <input id="cfh_5" type="checkbox" /> Hito 5
    <br />
    <input id="cfh_7" type="checkbox" /> Hito 6
    <br />
    <input id="cfh_8" type="checkbox" /> Hito 7
    <br />
    <input id="cfh_4567" type="checkbox" /> Hito 8
    <br />
    <input id="cfh_345" type="checkbox" /> Hito Implementación final del evento
    <br />
    <input id="cfh_45671" type="checkbox" /> Hito a8
    <br />
    <input id="cfh_45672" type="checkbox" /> Hito s8
    <br />
    <input id="cfh_45673" type="checkbox" /> Hito d8
    <br />
    <input id="cfh_45674" type="checkbox" /> Hito f8
    <br />
    <input id="cfh_45675" type="checkbox" /> Hito g8
    <br />
  </div>

</div>

Lorem ipsum dolor sit amet, libero nullam dolor, auctor consequat. Risus donec nunc nulla maecenas, at mattis, arcu tempor. Faucibus velit vitae arcu mauris, sem blandit elementum. Conubia pede interdum urna suspendisse eget. Vestibulum malesuada amet
ac vel ligula, leo aenean, ac ultrices nec class, consectetuer adipiscing massa in sint morbi justo, sit maecenas a sit. Enim molestie, porta enim, dolor suscipit sagittis, donec ornare sed aenean aliquet parturient blandit. Quisque nisl tempus arcu lobortis
massa quis, pede praesent nulla et eget sed, facilisi nunc elit erat. Volutpat mauris pellentesque magna aliquam dolor facilisi. Nec orci, nunc imperdiet feugiat. Erat est vestibulum nec et, eu eros tempus morbi netus, congue pellentesque vivamus, tellus
eleifend maecenas mus sodales blandit et, sed vulputate rhoncus lobortis amet id inceptos. Magna vestibulum elit vel aenean, aliquam praesent vestibulum sed fringilla amet volutpat, cras mauris suscipit pretium.

Solution 5 - Iframe

if u have aray then use this function in PHP

        function addOCheckBoxValuesByArray($arr) {		
        		foreach ($arr as $key => $value) {
        		echo"<input type= 'checkbox' name='formBylist[]' value='$value' />$value<br />";
        		}
        	
        }
    
    
    
    below code access data after user press submit button
    
    if(isset($_POST['formBylist']))
    	{	
    		$selectedDataBylist = $_POST['formBylist'];
    		if(!isset($selectedDataBylist))
    		{  // is data not selected
    			echo "You didn't select data from below checkbox Table";
    		}
    		else
    		{ // data is user selected
    			$Cnt = count($selectedDataBylist);
    			
    			for($i=0; $i < $Cnt; $i++)
    			{			
    			$result =$selectedDataBylist[$i]);
    				
    				}
    }
    enter code here

}



to put all check boxes in scroll bar - use CSS 

<html lang="en">
<head>
<style>
.container { border:2px solid #ccc; width:400px; height: 500px; overflow-y: scroll; } 
</style>
</head>



///
<form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post">			
				<div class="container">				
							       addOCheckBoxValuesByArray($chekboxarray);?>
				</div>




    enter code here

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionuser818700View Question on Stackoverflow
Solution 1 - IframeSamichView Answer on Stackoverflow
Solution 2 - IframeHüseyin SekmenoğluView Answer on Stackoverflow
Solution 3 - IframejpussacqView Answer on Stackoverflow
Solution 4 - IframedfdfView Answer on Stackoverflow
Solution 5 - IframeKhanView Answer on Stackoverflow