Ver Mensaje Individual
  #17 (permalink)  
Antiguo 06/01/2006, 10:25
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
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&iacute;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,

Última edición por Cluster; 06/01/2006 a las 14:21