la plantilla de smarty contiene los botones q hacen la ejecucion. al cliquear el boton "Guardar" este llama a una funcion javascript, el cual hace el ajax request al archivo php q contiene la consulta, esta la realiza y le da la rpta al javascript a travez de json el cual es recibido por el javascript y pinta el resultado en la plantilla.
Hasta ahi sali todo ok. pero en IE O_O.
Cuando intento hacerlo en firefox hay una plantilla q no me abre, es una q contiene combos (llenados por bd) y campos de textoq muestrna informacion guardada tb. He intantado hacer q me la pinte y estuve probando pedazo por pedazo de este formulario y he logrado q me pinte la 2/3 del ubigeo (departamento y provincia) lo curioso es que distrito esta igual de estrcutrado q los otros combos y cuando lo agrego ya no pinta. o si aumento una nueva fila en la tabla del formulario tampoco pinta o sin uso una nueva clase de estilo tampoco X_X. es como si tuviera un limite. en el FireBug me sale q el json llega vacio, y que por lo visto es un error en el ajax, pero en IE funciona re bien . q puede ser TT_TT ?, nose si alguien ya tuvo este problema antes,, y si asi fue como podria buscar en la web, porq busuqe con otros terminos y no encontre nada. Q tiene de malo la plantilla?. no hay tags incompletos y tiene el tag form bien puesto O_O.
Aca parte del codigo:
en el javascript - Esta función es llamada cuando se va a entrar a una plantilla (se esta usando el prototype.js):
function direcciona(plt,cod1,cod2,cod3){
new Ajax.Request('servicio.php',{postBody:'pltd=' + plt + '&cod1=' + cod1 + '&cod2=' + cod2 + '&cod3=' + cod3,method: 'POST',onSuccess: onSuccess,onFailure: onFailure});
}
function onSuccess(req,json){
json = eval("("+req.responseText+")");
if(json.success){
var contenedor = document.getElementById("contenedor");
contenedor.style.display = "none";
contenedor.innerHTML = json.tpl;
}
}
function onFailure(e){
alert("Error: "+e.status+" "+e.statusText);
}
//--------------------------servicio.php
require_once('Clase.php');
require_once('TemplateClass.php');
$tpl = new template();
$miclase2 = new miclase2();
$plantilla = $_POST["plt"];
$cod1 = $_POST["cod1"];
$cod2 = $_POST["cod2"];
$cod3 = $_POST["cod3"];
$result["success"] = true;
switch ($plantilla){
case 'formulario':
$dep = $Ubigeo->llenaDepartamentoTpl();
$tpl->core->assign("depa",$dep);
$info = $miclase2->ObtenerData($cod1,$cod2,$cod3);
$tpl->core->assign("info",$info[0][0]);
$tpl->core->assign("dept_codigo",$info[0][1]);
.
.
.
$tpl->core->assign("info50",$info[0][50]);
//otras validaciones para llenar combos (mas consultas)
}
$result["tpl"]=$tpl->core->fetch($plantilla.".tpl");
$output = json_encode($result);
header("X-JSON: ".$output);
echo $output;
//--------------------------la plantilla (tpl) tienes divs y estilos q cumplen funciòn estetica. además posee componentes como combobox, radiobuttons, buttons. q son llenados por el smarty:
<select name="departamento" id="departamento">
{foreach item=item from=$depa}
{if $dept_codigo eq $item.Codigo}
<option value='{$item.Codigo}' selected=true> {$item.Nombre}</option>
{else}
<option value='{$item.Codigo}'> {$item.Nombre}</option>
{/if}
{/foreach}
</select>
<input name="campo" type="text" class="field" id="campo" value="{$info}" maxlength="20"/>
//--------------------------
Es dificil dar un alcance del todo le codigo no solo por su complejidad si no q por terminos laborales se me esta prohibido

espero puedan ayudarme. saludos