Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/02/2011, 05:55
yeikh
 
Fecha de Ingreso: septiembre-2008
Mensajes: 45
Antigüedad: 16 años, 3 meses
Puntos: 0
Php y Xajax no coge bien el .js del CCS

Buenassss

Os cuento, he hecho un simple ejemplo con un select combinado y le he puesto un CSS de esos que redondean los imput y demás. EL caso es que cuando inicialmente lo abres ambos slect cogen el formato, pero cuando haces una llamada a XAJAX la respuesta que obtienes no tiene el formato del CSS pero si los colores.

Pongo el código

Código PHP:
<?
//incluímos la clase ajax
require ('xajax/xajax_core/xajax.inc.php');

//instanciamos el objeto de la clase xajax
$xajax = new xajax(); 
$xajax->configure('decodeUTF8Input',true);
$xajax->configure('javascript URI','xajax/');

function 
select_combinado($id_provincia){
   
//función para crear el select combinado
   //debe extraer las opciones de un select a partir de un parámetro
   
   //generamos unos arrays con distintas poblaciones de varias provincias
   //estos valores en un caso práctico seguramente se extraerán de base de datos
   //no habría que cargar todos en memoria, sólo hacer el select de las poblaciones de la provincia deseada
   
$madrid = array("Madrid""Las Rozas""Móstoles""San Sebastián de los Reyes");
   
$valencia = array("Valencia""La Elíana""Paterna""Cullera");
   
$barcelona = array("Barcelona""Badalona");
   
$leon = array ("León""Astorga""Villamejil");
   
$poblaciones = array($madrid$valencia$barcelona$leon);
   
   
//creo las distintas opciones del select
   
$nuevo_select "<select name='poblaciones'>";
   
   for (
$i=0$i<count($poblaciones[$id_provincia]); $i++){
   
//for ($i=0; $i<2; $i++){
      
$nuevo_select .= '<option value="' $i '">' $poblaciones[$id_provincia][$i] . '</option>';
   }
   
$nuevo_select .= "</select>";
   return 
$nuevo_select;
}

function 
generar_select($cod_provincia){
   
//instanciamos el objeto para generar la respuesta con ajax
   
$respuesta = new xajaxResponse();
   
$respuesta->setCharacterEncoding('ISO-8859-1');
   
   if (
$cod_provincia==999){
      
//escribimos el select de poblaciones vacío
      
$nuevo_select '<select name="poblaciones">
                  <option value=0>Elegir provincia</option>
                  </select>
                  '
;
   }else{
      
$nuevo_select select_combinado($cod_provincia);
   }
   
//escribimos en la capa con id="seleccombinado" 
   
$respuesta->Assign("seleccombinado","innerHTML",utf8_encode($nuevo_select));
   
   
//tenemos que devolver la instanciación del objeto xajaxResponse
   
return $respuesta;
}
   
//asociamos la función creada anteriormente al objeto xajax
$xajax->register(XAJAX_FUNCTION"generar_select");

//El objeto xajax tiene que procesar cualquier petición
$xajax->processRequest();
?>

<html>
<head>
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
   <META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=ISO-8859-1">
   <title>Validar usuario en Ajax</title>
   <?
   
//En el <head> indicamos al objeto xajax se encargue de generar el javascript necesario
   
$xajax->printJavascript();
   
?>
    <script language="javascript" type="text/javascript" src="niceforms.js"></script>
    <link rel="stylesheet" type="text/css" media="all" href="niceforms-default.css" />
</head>

<body>

<form name="formulario" class="niceform">
Provincia:
<br>
<select name="provincia" onchange="xajax_generar_select(document.formulario.provincia.options[document.formulario.provincia.selectedIndex].value)">
<option value="999">Selecciona provincia</option>
<option value=0>Madrid</option>
<option value=1>Valencia</option>
<option value=2>Barcelona</option>
<option value=3>León</option>
</select>
<br>
<br>
Población: <div id="seleccombinado">
<select name="poblaciones">
<option value=0>Elegir provincia</option>
</select>
</div>
</form>
</body>
</html>
He probado a con comandos de xajax como
Código PHP:
includeCSS('nuevo_estilo.css'
pero el problema no es el CSS que lo carga bien, ya que si cambio colores en el css y lo recargo con este comando me lo coge bien.

Creo que el problema está en el .js que cargo en el HEAD, pero no se como cargarlo en XAJAX para la respuesta

¿¿¿A alguien le ha pasado ésto????

Gracias a todos de antemano y un saludo, crackss!!