Saludos a la banda forera aquí con ostro aporte , vi hace poco que el tema de selects dependientes es recurrente así que me puse a hacer uno utilizando xajax y ya cambiando las consultas a pdo , gracias al Triby que se chuto las revisiones correspondientes , sin mas aquí el code
Código PHP:
Ver original<?php
#Autor Gerardo Aquino Lopez
#select dependientes con pdo y xajax
require("./xajax/xajax_core/xajax.inc.php");#incluyo xajax
include_once("../connpdo/connpdo.php");#mi conexion con pdo
$xajax=new xajax();#creo el objeto
$xajax->configure('javascript URI','xajax');#defino el path del javascript de la libreria xajax
/****************************funcion malevola********************************************/
function estados($id_pais)
{
global $conn;#globalizo la conexion
$objResponse = new xajaxResponse();#creo mo objeto response
$sql = "SELECT `id`,`opcion` FROM `lista_estados` where relacion='$id_pais'";#query con el id del pais
$query = $conn->query($sql);
/******************armado del segundo select dependiente***************************/
$html.="<label for='estado'>Estado:</label>";
$html.="<select name='estado' id='estado'>";
while( $fila = $query->fetch(PDO::FETCH_ASSOC) ){
$html.="<option value='{$fila['id']}'>{$fila['opcion']}</option>";
}
$html.="</select>";
$objResponse->assign('divestado','innerHTML',$html);#metodo assign al div que contendra el segundo select
return $objResponse;
}
$xajax->register(XAJAX_FUNCTION,'estados');#registrado de la funcion malevola
$xajax->processRequest();#manejo magico del ajax
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Select dependientes con xajax</title>
<?php $xajax->printJavascript(); #impresion del javascript necesario?>
</head>
<body>
<label for="paises">Paises:</label>
<?php
$sql = "SELECT `id` , `opcion` FROM `lista_paises`";
$query = $conn->query($sql);
?>
<!--aqui llamo a la funcion registrada en xajax-->
<select name="paises" id="paises" onchange="xajax_estados(this.value);">
<?php
while( $fila = $query->fetch(PDO::FETCH_ASSOC) ){
?>
<option value="<?php echo $fila["id"] ?>"><?php echo $fila["opcion"] ?></option>
<?php } ?>
</select>
<!--aqui va a estar el segundo select que cambiara-->
<div id="divestado">
<label for="estados">Estados:</label>
<select name="estados" id="estados">
<option value=""></option>
</select>
</div>
</body>
</html>