Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Xajax + dojo

Estas en el tema de Xajax + dojo en el foro de Frameworks JS en Foros del Web. Hola, usando DOJO y XAJAX tengo un problema que no consigo corregir. cuando en xajax usamos Código PHP: $respuesta -> assign ( "capacargar" , "innerHTML" ...
  #1 (permalink)  
Antiguo 26/01/2009, 15:07
Avatar de rameau1982  
Fecha de Ingreso: febrero-2007
Ubicación: Barcelona
Mensajes: 111
Antigüedad: 17 años, 2 meses
Puntos: 0
Xajax + dojo

Hola, usando DOJO y XAJAX tengo un problema que no consigo corregir.
cuando en xajax usamos
Código PHP:
$respuesta->assign("capacargar","innerHTML","$codigo"); 
estamos poniendo al innerHTML de la capa "capacargar" lo contenido en la variable $codigo.
Hasta aquí perfecto.
Ahora, cuando utilizamos DOJO se cargan una serie de scripts al cargar la página la primera vez, antes de hacer llamadas Xajax, a parte de los .css de DOJO.
El problema es que el innerHTML de una capa con atributos DOJO no es tan obvio, con lo que al hacer $respuesta->assign("capacargar","innerHTML","$codigo"); nos estamos cargando el código que añade DOJO y, en consecuencia, no lo vemos con el .css de DOJO.

He pensado en hacer
Código PHP:
$respuesta->assign("capacargar","innerHTML","$codigo");
$respuesta->script("dojo.require(\"dojo.parser\");");
$respuesta->script("dojo.require(\"dijit.layout.ContentPane\");");
$respuesta->script("dojo.require(\"dijit.layout.TabContainer\");"); 
Pero tampoco funciona, imagino que tengo que modificar el DOM por completo y no sólo el innerHTML. Como se haría en XAJAX??

Os dejo el código completo, a ver si me podéis ayudar:
Código PHP:
<?
require ('./xajax/xajax_core/xajax.inc.php');

$xajax = new xajax();
$xajax->setCharEncoding('ISO-8859-1');
$xajax->configure('decodeUTF8Input',true);

function 
carga()
{
$respuesta = new xajaxResponse();


$codigo="<div dojoType=\"dijit.layout.ContentPane\" title=\"Personal Data\">
    1ª opcion<br/>
    2ª opcion<br/>
    3ª opcion<br/>
</div>
<div dojoType=\"dijit.layout.ContentPane\" title=\"Address\">
    <label for=\"address_line_1\">Address Line 1:</label>
    <input type=\"text\" name=\"address_line_1\" id=\"address_line_1\"
        size=\"30\" /><br/>
    <label for=\"address_line_2\">Address Line 2:</label>
    <input type=\"text\" name=\"address_line_2\" id=\"address_line_2\"
        size=\"30\" /><br/>
    <label for=\"city\">City:</label>
    <input type=\"text\" name=\"city\" id=\"city\" size=\"30\" /><br/>
    <label for=\"state\">State:</label>
    <input type=\"text\" name=\"state\" id=\"state\" size=\"2\" /><br/>
    <label for=\"postal_code\">Postal Code:</label>
    <input type=\"text\" name=\"postal_code\" id=\"postal_code\"
        size=\"15\" /><br/>
</div>"
;

$respuesta->assign("capacargar","innerHTML","$codigo");
$respuesta->script("dojo.require(\"dojo.parser\");");
$respuesta->script("dojo.require(\"dijit.layout.ContentPane\");");
$respuesta->script("dojo.require(\"dijit.layout.TabContainer\");");

return 
$respuesta;
}


$xajax->registerFunction("carga");
$xajax->processRequest();
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
     "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Account Preferences With Dijit</title>
<style type="text/css">
    @import "/dojoroot/dijit/themes/tundra/tundra.css";
    @import "/dojoroot/dojo/resources/dojo.css"
</style>
<script type="text/javascript" src="/dojoroot/dojo/dojo.js"  
        djConfig="parseOnLoad: true"></script>


<script>
    dojo.require("dojo.parser");
    dojo.require("dijit.layout.ContentPane");
    dojo.require("dijit.layout.TabContainer");
</script>
<style>
.formContainer {
   width:600px;
   height:600px;
}
label {
   width:150px;
   float:left;
}
</style>

<?php $xajax->printJavascript("./xajax/"); ?>

</head>


<body class="tundra">

<input type="button" value="Cargar" onclick="xajax_carga()" />

<div id="capacargar" class="formContainer" dojoType="dijit.layout.TabContainer" 
   style="width:600px;height:600px">

</div>
</body>
</html>

Etiquetas: dojo, xajax
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:05.