Código:
  
 
<?php
//incluímos la clase ajax
require ('xajax/xajax.inc.php');
//instanciamos el objeto de la clase xajax
$xajax = new xajax();
$xajax->setCharEncoding('ISO-8859-1');
$xajax->configure('decodeUTF8Input',true);
function select_combinado($id_provincia){
$poblaciones = array();
$i=0;
$_sql = mysql_query("SELECT * FROM categoria_link ORDER BY id ASC" ); //o IRDER BY id DESC
while ($row = mysql_fetch_row($_sql)){
$j=0;
$_sql2 = mysql_query("SELECT * FROM subcategoria_link WHERE categoria_padre = '$row[1]' ORDER BY id ASC"); //o IRDER BY id DESC
while ($row2 = mysql_fetch_row($_sql2)){
$pob[$i][$j] = $row2[1];//nombre de la subcategoria
$j++; 
}
$i++; 
}
 $nuevo_select = "<select name='poblaciones'>";
   
   for ($i=0; $i<count($poblaciones[$id_provincia]); $i++){
   //for ($i=0; $i<2; $i++){
      $nuevo_select .= '<option value="' . $i . '">' . $poblaciones[$id_provincia][$i] . '</option>';
   }
   $nuevo_select .= "</select>";
   return $nuevo_select;
}
function generar_select($cod_provincia){
   //instanciamos el objeto para generar la respuesta con ajax
   $respuesta = new xajaxResponse();
   
   if ($cod_provincia==999){
      //escribimos el select de poblaciones vacío
      $nuevo_select = '<select name="poblaciones">
                  <option value=0>Elegir provincia</option>
                  </select>
                  ';
   }else{
      $nuevo_select = select_combinado($cod_provincia,$pob);
   }
   //escribimos en la capa con id="seleccombinado"
   $respuesta->assign("seleccombinado","innerHTML",$nuevo_select);
   
   //tenemos que devolver la instanciación del objeto xajaxResponse
   return $respuesta;
}
   
//asociamos la función creada anteriormente al objeto xajax
$xajax->registerFunction("generar_select");
//El objeto xajax tiene que procesar cualquier petición
$xajax->processRequest();
?>
<? 
$h=0;
$categorias_pad = array();
$_sql = mysql_query("SELECT * FROM categoria_link"); //o IRDER BY id DESC
while ($row = mysql_fetch_row($_sql)){
$categorias_pad[$h] = $row[1];//nombre de la categoria
$h++; 
}
?>
<form name="formulario">
Provincia:
<br>
<select name="provincia" onChange="xajax_generar_select(document.formulario.provincia.options[document.formulario.provincia.selectedIndex].value)">
<option value="999">Selecciona provincia</option>
<? For ($size=0;$size<$h;$size++)
{
echo '<option value="'.$size.'">'.$categorias_pad[$size].'</option>';
}
?>
</select>
<br>
<br>
Población: <div id="seleccombinado">
<select name="poblaciones">
<option value=0>Elegir provincia</option>
</select>
</div>
</form>
?>
 

