<html>
<head>
<title>Radio - Combo</title>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script type="text/javascript" src="main.js"></script>
</head>
<body>
<input type="radio" name="rol" value="1"/> <label>Clientes</label>
<input type="radio" name="rol" value="2"/> <label>Proveedores</label>
<select id="cboUsuarios">
<option value="-1">Seleccione</option>
</select>
</body>
</html>
$(document).ready(function() {
$("input[name=rol]").change(function () {
$.post("controller/controller.php",{cache:false, idRol:$(this).val()},function(response){
if(response == -1) {
alert("Ocurrió un error al consultar la información."); // Este mensaje se mostrará cuando haya ocurrido un error en la consulta a base de datos.
} else if(response == 0) {
alert("No existen usuarios para este rol."); // Este mensaje se mostrará cuando no existan usuarios pertenecientes a ese rol.
} else {
$("#cboUsuarios").html(response); // Llenamos nuestro combo con los registros de la base de datos en caso de que todo haya salido bien.
}
});
});
});
<?php
$conn = mysqli_connect('localhost','root','','lawliet');
mysqli_set_charset($conn,"utf8");
$sql = "SELECT id_usuario,nombre,apellido FROM usuario WHERE id_rol = ".$_POST['idRol'];
$result = mysqli_query($conn,$sql);
if($result) {
$rows = mysqli_num_rows($result); // Obtenemos el número de registros devueltos siempre y cuando la consulta se ejecuto correctamente.
if($rows > 0) {
$options = "<option value='-1'>Seleccione</option>";
while($row = mysqli_fetch_array($result)) {
$options .= "<option value='".$row[0]."'>".$row[1]." ".$row[2]."</option>";
}
echo $options; // Mandamos todos los registros encontrados.
} else {
echo 0; // Si la consulta no nos regreso ningún registro, mandamos este código de error.
}
} else {
echo -1; // Si la consulta no se ejecuto correctamente, mandamos esté código de error.
}
?>
?>