Ver Mensaje Individual
  #3 (permalink)  
Antiguo 08/05/2006, 14:29
Avatar de enriqueplace
enriqueplace
 
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años, 6 meses
Puntos: 32
La única diferencia con la documentación oficial es que estoy usando Smarty según como sugieren en el propio sitio de Xajax. Lo bueno es que funciona correctamente con Firefox, y lo malo, es que no carga los combos en IE.

Lo ejemplos que trae el Xajax funciona en ambos navegadores, pero no lo que yo quiero hacer (que es exacto los ejemplos que he visto en todos lados).

Pongo algo de código, resumido lo más posible, para no generar mucho ruido:

index.php - inicia la ejecución del ejemplo, creando la variable "xajax_javascript" con la información necesaria para que funcione Xajax en una plantilla de Smarty.
Código PHP:
<?php
require_once ($_SERVER[DOCUMENT_ROOT]."/ejemploXAJAX/configuracion.php");
require_once 
'miAjax.php';
 
$miT = new Template();
$miT->assign('xajax_javascript'$xajax->getJavascript('xajax'));
$miT->display("index.tpl.html");

?>
index.tpl.html - Plantilla Smarty con el código de los "select", con un javascript que fuerza la carga del primer combo (función xajax), y una llamada a una segunda función para cuando cambie el primer combo, cargue el segundo combo.

Código HTML:
<form name="form" action="prueba.php">
 <table border=1>
  <tr>
   <td>Familia</td>
   <td>   			
    <select id="selFamilia" name="selFamilia" onchange="xajax_cargarSubFamilia(document.form.selFamilia.selectedIndex);">
     <option value=0>Todo</option>
    </select>
   </td>
  </tr>

  <tr>
   <td>SubFamilia</td>
   <td>
    <select id="selSubFamilia" name="selSubFamilia">
     <option value=0>Todo</option>
    </select>
   </td>
  </tr>	   		

 </table>
</form>
				 
<script type="text/javascript">
 // Forzar carga
 xajax_cargarFamilia();
</script> 
miAjax.php - fuente incluido por el index.php, donde contiene todas las funciones de xajax implementadas, y la creación del objeto xajax.

Código PHP:
require ('xajax/xajax.inc.php');

function 
cargarFamilia($a=""){
 
$contenido "<option value=1>Opcion 1</option>";    
 
$contenido .= "<option value=2>Opcion 2</option>";
 
$contenido .= "<option value=3>Opcion 3</option>";
    
 
$objResponse = new xajaxResponse();    
 
$objResponse->addAssign("selFamilia","innerHTML"$contenido);
 return 
$objResponse;
}
function 
cargarSubFamilia($fam=""){
    switch (
$fam) {
        case 
1:
            
$contenido "<option value=1>1Opcion 1</option>";    
            
$contenido .= "<option value=2>1Opcion 2</option>";
            
$contenido .= "<option value=3>1Opcion 3</option>";        
            break;
        case 
2:
            
$contenido "<option value=1>2Opcion 1</option>";    
            
$contenido .= "<option value=2>2Opcion 2</option>";
            
$contenido .= "<option value=3>21Opcion 3</option>";        
            break;
        default:
            break;
    }
    
    
$objResponse = new xajaxResponse();    
    
$objResponse->addAssign("selSubFamilia","innerHTML"$contenido);
    return 
$objResponse;
}

$xajax = new xajax(); 

$xajax->registerFunction("cargarFamilia");
$xajax->registerFunction("cargarSubFamilia");

$xajax->processRequests();
?> 
Si alguien descubre el error "sutil", me alegraré mucho
__________________
Blog phpsenior.com Cursos a Distancia surforce.com