In this case you should use radio instead of checkbox, because unlike the checkbox, the radio only allows you to choose an option.
Create a label for each image and add before the tag img an input of the type radio:
<label>
<input type="radio" name="icones" value="valor 1">
<img src="caminho_da_imagem_1">
</label>
<label>
<input type="radio" name="icones" value="valor 2">
<img src="caminho_da_imagem_2">
</label>
Note that the radios must have the same name, what changes is only the value of each. It’s this value which will identify which image the user has chosen.
CSS
In CSS you will hide the radio with opacity, but by clicking on the image, its respective radio will be checked by changing the color of the adjacent image border:
/* oculta o radio */
input[name=icones]{
position: absolute;
opacity: 0;
}
/* propriedades da imagem */
input[name=icones] + img{
cursor: pointer;
border: 4px solid #000;
}
/* altera a cor da borda */
input[name=icones]:checked + img{
border-color: #30F519;
}
You can send the value of radio checked via POST form for PHP and pick up with $_POST['icones'] (where icones is the name of radios).
Example: click on an image and then click on the button to display the value of which radio is checked out:
function demo(){
var icones = document.querySelector("input[name=icones]:checked");
console.log("A imagem selecionada é a: " + icones.value);
}
input[name=icones]{
position: absolute;
opacity: 0;
}
input[name=icones] + img{
cursor: pointer;
border: 4px solid #000;
}
input[name=icones]:checked + img{
border-color: #30F519;
}
Selecione uma imagem:
<form method="post" action="pagina.php">
<div style="display: flex;">
<div>
<label>
<input type="radio" name="icones" value="1">
<img src="https://img.icons8.com/ultraviolet/2x/avatar.png">
</label>
</div>
<div>
<label>
<input type="radio" name="icones" value="2">
<img src="https://img.icons8.com/ultraviolet/2x/avatar.png">
</label>
</div>
<div>
<label>
<input type="radio" name="icones" value="3">
<img src="https://img.icons8.com/ultraviolet/2x/avatar.png">
</label>
</div>
</div>
</form>
<button onclick="demo()">Value da imagem selecionada</button>
Perfect! That’s right, thank you very much!!!
– Gustavo Oliveira