23/11/2009, 08:02
|
| | Fecha de Ingreso: marzo-2007
Mensajes: 12
Antigüedad: 17 años, 1 mes Puntos: 0 | |
Respuesta: [PHP] Select con valores de tabla Mysql que dependa del valor seleccionado Cita:
Iniciado por Cluster Ok, -gracias- por confirmar eso.
Te pongo el ejemplo que te comenté mio .. No puedo asesorate mucho si no te funciona o para adaptarlo a tus necesidades .. intenta entenderlo .. por lo menos está todo en un sólo script. Código PHP: <? require ('../classes/ajax/xajax.inc.php'); include_once "../classes/ez_sql.php"; function opcion($region){ global $db; $sql = "SELECT id_comuna,nombre_comuna FROM comunas WHERE id_region_comunas='".$region."' ORDER BY nombre_comuna"; $comunas_resultado=$db->get_results($sql); $opcion = "<select id=\"comuna\" name=\"comuna\" onChange=\"xajax_opcion2(document.getElementById('region').value,document.getElementById('comuna').value);\">"; if (!$comunas_resultado){ $opcion .="<option value=\"\">No hay comunas</option>"; } else { $opcion .="<option value=\"\">-- Seleccione --</option>"; foreach ($comunas_resultado as $comuna){ $comuna_s=addslashes($comuna->nombre_comuna); $comuna_s=utf8_encode($comuna_s); $opcion .="<option value=\"".$comuna->id_comuna."\">".$comuna_s."</option>"; } } $opcion .= "</select>"; $objResponse = new XajaxResponse(); $objResponse->addAssign("divcomuna", "innerHTML", $opcion); return $objResponse; //return $objResponse->getXML(); } function opcion2($region,$comuna){ global $db; $sql = "SELECT id_calle_comuna,nombre_calle_comuna FROM calles_comuna_region WHERE id_region='".$region."' AND id_comuna='".$comuna."' ORDER BY nombre_calle_comuna"; $calles_resultado=$db->get_results($sql); $opcion = "<select id=\"calle\" name=\"calle\">"; if (!$calles_resultado){ $opcion .="<option value=\"\">No hay calles</option>"; } else { $opcion .="<option value=\"\">-- Seleccione --</option>"; foreach ($calles_resultado as $calle){ $calles_s=addslashes($calle->nombre_calle_comuna); $calles_s=utf8_encode($calles_s); $opcion .="<option value=\"".$calle->id_calle."\">".$calles_s."</option>"; } } $opcion .= "</select>"; $objResponse = new XajaxResponse(); $objResponse->addAssign("divcalle", "innerHTML", $opcion); return $objResponse; } $xajax = new xajax(); $xajax->debugOn(); // Uncomment this line to turn debugging on $xajax->statusMessagesOn (); $xajax->registerFunction("opcion",XAJAX_GET); $xajax->registerFunction("opcion2",XAJAX_GET); $xajax->processRequests(); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Documento sin título</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <?php $xajax->printJavascript("../classes/ajax/"); // indica la ruta donde tengas instalado Xajax ... ?> </head> <body onLoad="xajax_opcion(0);xajax_opcion2(0,0);"> <? echo "variables:<br>"; print_r($_POST); ?> <form name="formulario" action="direccion2.php" method="POST"> <?php // directamente muestro el primer "combo" .. el "padre" y en base a ese armo "dinámicamente" en XAJAX el resto. $sql = "SELECT id_region,nombre_region FROM regiones"; $consulta_region = $db->get_results($sql); if ($consulta_region) { ?> <select name="region" id="region" onChange="xajax_opcion(document.getElementById('region').value);xajax_opcion2(document.getElementById('region').value,0);">"; if (!$comunas_resultado){"> <option>---Seleccione una Opción---</option> <? foreach($consulta_region as $regiones){ echo "<option value=\"".$regiones->id_region."\">".$regiones->nombre_region."</option>\n"; } ?> </select> <? } ?> <div id="divcomuna"></div> <div id="divcalle"></div> <input type="submit" name="Submit" value="Enviar"> </form> </body> </html> Como te comenté .. usa una capa de abastracción de BBDD .. no es muy complicado adaptarlo a uso de "mysql_query()" y demás .. eso creo que es lo de menos.
Un saludo, -----------------------------------------------
Saludos QUOTE,
Estuve analizando un poco el script que publicaste y a simple vista se ve que funciona. Surge en mi una duda: cuando refieres a la instruccion (include_once "../classes/ez_sql.php";), puedes, por favor, decirme qué función cumple ese script? |