Bueno para eso, tendrias que consultar en la base de datos y traes esos valores, luego en el evento onload de la etiqueta body, cargas las funciones
Código PHP:
<body onload="cargaProvincia('<?=id_pais?>');cargaLocalidad('<?=id_provincia?>')">
Aunque con esto consigues que cuando se carga la pagina, obtengas las provincias y las cuidades del pais que ya esta cargado en la base de datos, faltaria modificar estas funciones para que quede seleccionada la provincia y la localidad, ejemplo
Cuando se toma Argentina de la base de datos es facil hacer que
<option value="102" selected>Argentina</option>
Ya que este dato lo traemos de la base de datos, ahora con de arriba solo obtendremos todas las provincias y las localidades de Argentina.
Para que aparezcan seleccionadas, a esas funciones, hay que pasarles otro parametro, que será el respectivo valor de Provincia y Localidad, quedando estas funciones asi
cargaProvincia Código PHP:
function cargaProvincia(id_prov,item_select)
{
ajax=nuevoAjax();
ajax.open("GET", "includes/combos.php?prov="+id_prov+"&item="+item_select+"&num_ale="+Math.random(), true);
ajax.onreadystatechange=function()
{
if (ajax.readyState==4)
{
document.getElementById("prov").innerHTML=ajax.responseText;
}
}
ajax.send(null);
}
cargaLocalidad
Código PHP:
function cargaLocalidad(id_loc,item_select)
{
ajax=nuevoAjax();
ajax.open("GET", "includes/combos2.php?loc="+id_loc+"&item="+item_select+"&num_ale="+Math.random(), true);
ajax.onreadystatechange=function()
{
if (ajax.readyState==4)
{
document.getElementById("loc").innerHTML=ajax.responseText;
}
}
ajax.send(null);
}
Donde id_prov=id_pais // Esto trae todas las provincias del pais seleccionado
Donde item_select=id_provincia // Esto sirve para dejar seleccionada la provincia
-----------------------------------------------------------
Donde id_loc=id_prov // Esto trae todas las localidades de la provincia seleccionada
Donde item_select=id_loc // Esto sirve para dejar seleccionada la ciudad
Luego en tus PHP haces la clasica comprobacion en el while, y preguntas si ($_GET['item']==$row['id_prov'])?"selected":"";
y para el php de localidades ($_GET['item']==$row['id_localidad'])?"selected":"";
Por consiguiente, si realizas un insert, tus nuevas funciones para que sirvan para un insert o para un Update como este segundo caso, tendran que pasar 2 argumentos
<Select name=paises
onchange=cargaProvincia(this.value,0)>
</select>
<Select name=provincia
onchange=cargaLocalidad(this.value,0)>
</select>
Bueno espero que se haya entendido, es cuestion de renegar un poquito, espero les sirva de orientacion, avisen si les sirve, yo lo trabaje de esta forma para combos con 6 selects dependientes y no tuve dramas.
Ha me olvidaba si algun gurú sabe alguna otra forma que la comente, por ahi hay alguna forma mas sencilla de hacerlo.
Saludos!