Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/11/2010, 10:41
Avatar de valdo_kof
valdo_kof
 
Fecha de Ingreso: noviembre-2009
Ubicación: San Juan del Rio, Qro
Mensajes: 192
Antigüedad: 15 años
Puntos: 16
Pregunta problema al cargar pagina q tiene consulta mysql y funciones en script con ajax

tengo un problema al cargar los escripts desde un ajax en una pagina que se llama modificar_permisos.jsp con el siguiente codigo
Código:
	<form name="form1" method="post" action="">
    <table width="282" border="0" align="center">
        <tr>
          <td width="276"><div id="login3"><table width="262" border="0" align="center">
            <tr>
              <td width="289"><div align="center">perfil</div></td>
            </tr>
<%//pongo mis variables de coneccion
             //conecto con mi basede datos  
  //hago la consulta
 while(rs.next()){  
 int dato=rs.getInt("id_perfil");
 %><tr>
              <td><a style="text-decoration:underline;cursor:pointer;" onclick="getPagina('permisos.jsp?idperfil=<%=dato%>')"><%=rs.getString("perfil")%></a></td>
            </tr>
<%
}%>
          </table></div></td>
        </tr>
        <tr><td>           
       </td> </tr>       
      </table>
           <div id="formulario"></div>
    </form>
    </body>
mi codigo ajax.js es el siguiente

Código:
var tagScript = '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)';
/**
* Eval script fragment
* @return String
*/
String.prototype.evalScript = function()
{
        return (this.match(new RegExp(tagScript, 'img')) || []).evalScript();
};
/**
* strip script fragment
* @return String
*/
String.prototype.stripScript = function()
{
        return this.replace(new RegExp(tagScript, 'img'), '');
};
/**
* extract script fragment
* @return String
*/
String.prototype.extractScript = function()
{
        var matchAll = new RegExp(tagScript, 'img');
        return (this.match(matchAll) || []);
};
/**
* Eval scripts
* @return String
*/
Array.prototype.evalScript = function(extracted)
{
				var s=this.map(function(sr){
				var sc=(sr.match(new RegExp(tagScript, 'im')) || ['', ''])[1];
				if(window.execScript){
				    window.execScript(tagScript);
				}
				else
				{
				 window.setTimeout(sc,0);
				}
				});
				return true;
};
/**
* Map array elements
* @param {Function} fun
* @return Function
*/
Array.prototype.map = function(fun)
{
        if(typeof fun!=="function"){return false;}
        var i = 0, l = this.length;
        for(i=0;i<l;i++)
        {
                fun(this[i]);
        }
        return true;
};

function AJAX2(){
	var ajaxs = ["Msxml2.XMLHTTP","Msxml2.XMLHTTP.4.0","Msxml2.XMLH TTP.5.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];
	var ajax = false;
	for(var i=0 ; !ajax && i<ajaxs.length ; i++){
		try{
			ajax = new ActiveXObject(ajaxs[i]);
		}
		catch(e) {
			ajax = false;
		}
	}
	if(!ajax && typeof XMLHttpRequest!='undefined') {
		ajax = new XMLHttpRequest();
	}
	return ajax;
}

function getPagina(pagina){

	document.getElementById("formulario").innerHTML = "<center>C A R G A N D O</center>";

	var ajax = AJAX2();
	if(!ajax){
		document.getElementById("formulario").innerHTML = "Error: El navegador no acepta ActiveX. No se pudo cargar la pagina.";
		return false;
	}

	ajax.open("POST",pagina,true);

	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			var scs=ajax.responseText.extractScript();
      document.getElementById("formulario").innerHTML=ajax.responseText.stripScript();
      scs.evalScript();
		}
	}

	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.send(null);
}
lo ocupo para abrir la pagina permisos.jsp la cual me hace una consulta y me activa los checks de una lista de permisos dependiendo del resultado de mi consulta

el codigo de mi pagina permisos.jsp es el siguiente

Código:
<!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>JSP Page</title>
    </head>
    <script>
function seleccionar_todo(){
	for (i=0;i<document.forms.form1.elements.length;i++)
		if(document.forms.form1.elements[i].type == "checkbox")
			document.forms.form1.elements[i].checked=1
}
function deseleccionar_todo(){
	for (i=0;i<document.forms.form1.elements.length;i++)
		if(document.forms.form1.elements[i].type == "checkbox")
			document.forms.form1.elements[i].checked=0
}
</script>
    <script>
         function seleccionar2(subper,id2){
document.forms.form1.subper.checked = true
document.forms.form1.subper.value = id2
}
    </script>
<script>
    function seleccionar(tarea,id,subper,id2){
        document.forms.form1.tarea.checked = true
document.forms.form1.tarea.value = id
document.forms.form1.subper.checked = true
document.forms.form1.subper.value = id2
    }
</script>
    <body>
<form name="form1" method="post" action="">
<table width="200" border="1" align="center">
<tr>
<td>Permisos 
  <label> <br>
  <input type="checkbox" name="checkbox" value="" onClick="javascript:seleccionar_todo()">
seleccionar todos <br>
<input type="checkbox" name="checkbox2" value="" onClick="javascript:deseleccionar_todo()">
  seleccionar ninguno</label></td>
</tr>
<tr>
<td>
<table width="200" border="1">
<tr>
<td>Catalogos</td>
</tr>
<tr>
<td>
<table width="200" border="1">
<tr>
<td>
<label>
<input name="plano" type="checkbox" id="plano" value="">
</label>Planos</td>
</tr>
<tr>
<td><table width="200" border="1">
<tr>
<td><label>
<input type="checkbox" name="agregar_plano" value="" id="agregar_plano">
Agregar Datos<br>
<input type="checkbox" name="modificar_plano" value="" id="modificar_plano">
Modificar Datos<br>
<input type="checkbox" name="eliminar_plano" value="" id="eliminar_plano">
Eliminar Datos</label></td>
</tr>
</table>
</td>
</tr>
</table></td>
</tr>
</table>
<table width="220" border="1">
<tr>
<td width="210">Herramientas</td>
</tr>
<tr>
<td><table width="211" border="1">
<tr>
<td width="201"><label>
<input name="respaldar" type="checkbox" id="respaldar" value="">
</label>
Respaldar Base de Datos </td>
</tr>
<tr>

</tr>
</table></td>
</tr>
<tr>
<td><table width="210" border="1">
<tr>
<td width="200"><label>
<input name="restaurar" type="checkbox" id="restaurar" value="">
</label>
Restaurar Base de Datos </td>
</tr>
<tr>
  
</tr>
</table></td>
</tr>
</table>
<table width="218" border="1">
<tr>
<td width="214">Produccion</td>
</tr>
<tr>
<td><table width="208" border="1">
<tr>
<td width="198"><label>
<input type="checkbox" name="nueva" value="" id="nueva">
</label>
nueva</td>
</tr>
</table></td>
</tr>
<tr>
<td><table width="210" border="1">
<tr>
<td width="200"><label>
<input type="checkbox" name="continuar" value="">
</label>
Continuar</td>
</tr>
</table></td>
</tr>
<tr>
<td><table width="210" border="1">
<tr>
<td width="200"><label>
<input type="checkbox" name="paro" value="">
</label>
Paro</td>
</tr>
<tr>
<td><table width="200" border="1">
<tr>
<td><label>
<input type="checkbox" name="reportar_causa" value="">
</label>Reportar Causa </td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table>            
<table width="200" border="1">
<tr>
<td>Usuarios Y Perfiles </td>
</tr>
<tr>
<td><table width="200" border="1">
<tr>
<td><label>
<input name="usuarios" type="checkbox" id="usuarios" value="">
</label>
Usuarios</td>
</tr>
<tr>
<td><table width="200" border="1">
<tr>
<td><label>
<input type="checkbox" name="registrar_usuario" value="">Registrar Usuario<br>
<input type="checkbox" name="modificar_usuario" value="">Modificar Usuario<br>
<input type="checkbox" name="eliminar_usuario" value="">Eliminar Usuario</label></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<tr>
<td><table width="200" border="1">
<tr>
<td><label>
<input name="perfiles" type="checkbox" id="perfiles" value="">
</label>Perfiles</td>
</tr>
<tr>
<td><table width="200" border="1">
<tr>
<td><label>
<input type="checkbox" name="agregar_perfil" value="">Agregar Perfil<br>
<input type="checkbox" name="modificar_perfil" value="">Modificar Perfil<br>
<input type="checkbox" name="eliminar_perfil" value="">Eliminar Perfil</label></td>
</tr>
</table></td>
</tr>				  
</table></td>
</tr>
<tr>
<td><table width="200" border="1">
<tr>
<td><label>
<input name="permisos" type="checkbox" id="permisos" value="">
</label>Permisos</td>
</tr>
<tr>
<td><table width="200" border="1">
<tr>
<td><label><input type="checkbox" name="modificar_permisos" value="">Modificar Permisos </label></td>
</tr>                      
</table></td>
</tr>
</table></td>
</tr>
</table>
</td>
</tr>		
</table>
</form>
<%
         String tarea=null;
int dato=Integer.parseInt(request.getParameter("idperfil"));;
<%//pongo mis variables de coneccion
             //conecto con mi basede datos  
  //hago la consulta
while(rs.next()){
<%
             //conecto con mi basede datos  
  //hago la consulta

while(rs2.next()){
//conecto con mi basede datos  
  //hago la consulta
while(rs3.next()){
if(rs3.getString("tarea").equals("null")){
tarea="nueva";
%>
<script>
seleccionar2(<%=rs2.getString("subpermiso")%>,<%=rs2.getInt("subpermiso.id_subpermiso")%>);
</script>
<%
}
else{
    tarea=rs3.getString("tarea");
%>
<script>

    seleccionar(<%=tarea%>,<%=rs3.getInt("tareas.id_tarea")%>,<%=rs2.getString("subpermiso")%>,<%=rs2.getInt("subpermiso.id_subpermiso")%>);

</script>
<%
}}}}//cierro conecciones%>        
</body>
</html>
el problema esta en que cuando mando llamar permisos.jsp me manda un error de tiempo de ejecucion en la linea
document.getElementById("formulario").innerHTML=aj ax.responseText.stripScript();
de mi ajax.js

no se ejecutan que es lo que estoy haciendo mal o como puedo corregirlo si alguien me puede ayudar se lo agradecere.


de antemano muchas gracias