Comunidad de diseño web y desarrollo en internet online

Ejecutar javascript en div cargado ajax(prototype)

Citar            
MensajeEscrito el 26 Jun 2008 08:21 pm
Hola,
Cargo unas partes de un formulario dinámicamente, pero sucede que al cargar las partes dinámimente no funcionan las validaciones de los campos de texto. Leyendo por ahi, entendi cual es el problema, encontre unas soluciones pero no pude hacer funcionar ninguna, ademas que decian que daban problemas en mozilla o en otros casos en otros navegadores.

Asi es como cargo con prototype, mi archivo js

Código :

function precioCategoria(){
   var url = "pValidarPrecio.php";
   var pars = "selCategoria="+$F('selCategoria')+"&txtFechaSalida="+$F('txtFechaSalida')+"&txtFechaLlegada="+$F('txtFechaLlegada');
   var myAjax = new Ajax.Updater( "divPrecio", url, { method: "post", parameters: pars });
}
function productoFamiliar(){
   var url = "fFamiliares.php";
   var pars = "selCategoria="+$F('selCategoria');
   var myAjax = new Ajax.Updater( "divFamiliares", url, { method: "post", parameters: pars });
}

Los pValidarPrecio.php y fFamiliares.php si cargan pero no funciona nada en javascript, mi dilema es que necesito seguir cargando algunas cosas dinamicamente en estos archivos.

Por ronin

53 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 Jun 2008 07:22 am
Una duda...
El javascript que no funciona.... ¿viene en el código que cargas?
¿o ya está en la página contenedora, y el problema es que luego no te funciona con los datos cargados?

Por mi parte, si es "si" a la primera, te diría que quitaras el javascript de allí.

Por El Oso Amoroso

Claber

1780 de clabLevel

6 tutoriales

 

Madrid, España, Europa, Eurasia, La Tierra, Sist.Solar, Vía Láctea, UNIVERSO

firefox
Citar            
MensajeEscrito el 27 Jun 2008 05:54 pm
No funciona el javascript que esta dentro de pValidarPrecio.php o fFamilares.php. Por ejemplo si pongo

Código :

<script type="text/javascript">
alert("aaaa");
</script>


Encontre aqui la solucion http://www.forosdelweb.com/f77/howto-ejecutar-javascript-que-viene-ajax-510438/index2.html
al parecer debo pasar el parametro
evalScript: true pero tampoco me funciona,
asi es como le cambie

Código :

var myAjax = new Ajax.Updater( "divFamiliares", url, { method: "post", parameters: pars, evalScripts: true });

Aqui, http://prototypejs.org/api/ajax/updater dice que tiene unas particularidades la propiedade evalScript, aunque aun no me funciona.

Por ronin

53 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 Jun 2008 11:45 pm
Corrijo, ya me funciona.

Por ronin

53 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Nov 2008 12:07 pm
me podes decir por favor , como hiciste para que funcione, estoy migrando un sitio con frames a divs con ajax y tengo funciones dentro de los php que cargo con ajax y no las quiero adjuntar en la pagina superior para que funcionen, yo puse el parametro evalScript en true pero no me funciona.

Gracias.

Por aleprrr

2 de clabLevel



 

msie
Citar            
MensajeEscrito el 18 Nov 2008 08:19 pm
Si lees mi post anterior ahi esta la solucion,

debes aumentar

Código :

 evalScripts: true 

al final del ajax updater, obviamente esto es solo si usas prototype.

Por ronin

53 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Nov 2008 10:24 pm
no le encuentro la falla, no me funciona, vos tambien tenias funciones de javascript dentro del php que se ejecutan ante los eventos de los controles de la pagina ?

Por aleprrr

2 de clabLevel



 

msie7
Citar            
MensajeEscrito el 18 Nov 2008 10:37 pm

aleprrr escribió:

no le encuentro la falla, no me funciona, vos tambien tenias funciones de javascript dentro del php que se ejecutan ante los eventos de los controles de la pagina ?
function ver_url_muestra1(que) // incidente.php
{
new Ajax.Request(que,
{
method:'post',
evalScripts:true,
onSuccess: function(transport)
{
var response = transport.responseText || "no response text";
$('divMuestra').innerHTML = response;
},
onFailure: function()
{
alert('Something went wrong...')
}

}

);
oculta_masivos1();
}


/// con incidente.php la hago sencilla porque el problema no radica en el codigo enroscado que hice
tengo esto en el head
<script>
<!--
function AddText(tipo)
{
alert("pepe");
}

function grabar_incidente()
{
alert("pepe");
}
//-->
</script>
y la llamo desde un boton tipo input en el evento onclick y la otra desde un select para que cambie un textarea, con un simple alert no funcionan, por eso no subo mi archivo.

<select name="id_esca" id="id_esca" onChange="AddText('speech');" style="font-size:9px">

<INPUT name=Enviar type=button id=Enviar onClick="grabar_incidente()" value=Enviar>

si a esta pagina la llamo dentro de un iframe , funciona, pero no quiero volver al iframe

Por aleprrr

2 de clabLevel



 

msie7
Citar            
MensajeEscrito el 19 Nov 2008 02:52 pm
No soy muy agil con javascript, pero veamos si te puedo ayudar. Prueba poniendo alert("alerta"); fuera de las funciones asi en teoria cuando se cargue la pagina deberia botar "alerta". No se si usas firefox, pero si lo usas deberias usar firebug(que talvez lo uses), para ver si te muestra algun error, a veces hasta te indica en que linea.

Por ronin

53 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Nov 2008 12:07 am
Listo, muchas gracias por la pronta respuesta, utilicé el ejemplo de tu post anterior, segui el link que dejaste y con esos ejemplos ya me funciona, demas está decir que tenia un pequeño error en la función javascript que al llamarla con ajax no la interpretaba entera, y me daba un error 80001.. o algo asi , un numero raro, buscando en otros foros encontre que algunos espacios en las funciones hacian que ajax no la interprete, quité los espacios y salió andando, en realidad no era un error ya que javascript permite espacios, pero ajax parece que no.

gracias nuevamente.
los saludos cordialmente desde lanus.

Por aleprrr

2 de clabLevel



 

msie7
Citar            
MensajeEscrito el 23 Ene 2009 06:19 pm
Se que ha pasado mucho tiempo, pero aun asi quisiera que me ayudaran...

estoy implementando un dhtmlxgrid en la pagina_grilla,
al llamar desde el navegador directamente a la pagina_grilla se ve perfecto,
pero AL CARGAR PAGINA_GRILLA EN UN <DIV> trabajado por ajax,
la pagina no muestra la grilla pero si los <h1> o los "echo" de php
entonces creo ke el problema radica en la carga de los archivos js llamados por
pagina_grilla, como ustedes dicen,
He utilizado prototipe para no tener que extender largas lineas de codigo,
y aplique el valor TRUE a evaScript como mas arriba lo mencionan pero .... todo sigue igual
por favor si alguien sabe por donde tengo que buscar que me lo haga saber
grasias

Por FIDOKELELE

0 de clabLevel



 

msie7
Citar            
MensajeEscrito el 25 Mar 2010 04:35 pm
FIDOKELELE, si tienes funciones dentro del codigo javascript definidas de la siguiente forma:
function AnyFunction() {
...
}
prototype no las evalua, debes definirlas de esta forma:
window.AnyFunction = function() {
...
}
Saludos.

Por Zoroastro

0 de clabLevel



 

msie7
Citar            
MensajeEscrito el 26 Nov 2010 10:22 pm
Amigos, tengo dos problemas con prototype y php

El primero es que busco en la bd el nombre del file que incluire posteriormente en un div y eso lo hago con ajax luego cuando vira la respuesta que actualizo el div no muestra nada y veo el codigo en la paguina y esta sin nada dentro del div.
Asi lo hago:
$('submenucontry').innerHTML = "<?php include('../client/public/"+showResponse.responseText+".php'); ?>";

en showResponse.responseText viene el nombre del file.

Segundo, cuando hago una consulta a la bd y necesito toda la fila en el script trato de convertir eso en json para asi poner un eval en el cliente y poder referirme al arreglo. No me sale. Alguien tiene un ejemplito de como se hace esto porque vi la documentacion pero evidentemente no lo estoy haciendo nada bien pues no obtengo resultados en el cliente.

Saludos y gracias de ante mano.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 20 Abr 2011 04:38 pm

ronin escribió:

Si lees mi post anterior ahi esta la solucion,

debes aumentar

Código :

 evalScripts: true 

al final del ajax updater, obviamente esto es solo si usas prototype.



Holas, mira éste POST me sirvio para poder utilizar Javascript al cargar una pagina con AJAX, ahora lo que busco, es poder usar codigo JSP y JSTL de la misma página, hay alguna opción de activación así como se lo hizo para el Javascript????

gracias por su ayuda

Por acevallo

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Abr 2011 05:40 pm

acevallo escribió:

ronin escribió:

Si lees mi post anterior ahi esta la solucion,

debes aumentar

Código :

 evalScripts: true 

al final del ajax updater, obviamente esto es solo si usas prototype.



Holas, mira éste POST me sirvio para poder utilizar Javascript al cargar una pagina con AJAX, ahora lo que busco, es poder usar codigo JSP y JSTL de la misma página, hay alguna opción de activación así como se lo hizo para el Javascript????

gracias por su ayuda




Lo leí, pero, eso soluciona el uso de codigo JAVASCRIPT, pero yo te hablo de código JSP y JSTL, como hago para que lea ese tipo de código.

Por acevallo

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 21 Abr 2011 05:10 pm
JSP es un lenguaje que se ejecuta en el servidor, ningún navegador entiende JSP.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 21 Abr 2011 08:32 pm

DriverOp escribió:

JSP es un lenguaje que se ejecuta en el servidor, ningún navegador entiende JSP.


encontré la solución, pueden usar JSTL dentro de JAVASCRIPT, así:

<script>
function productsLoad(image){
document.getElementById("idFa").value=image.title;
var contactTypesList = new Array();
var tmpArray = new Array();
var newOption,newOption2;
var i=1;
<c:forEach var="contactType" items="${model.farmers2}">
newOption = '${contactType.farmerId}';
contactTypesList.push(newOption);
if ((newOption==image.title)&&(i==1)){
<c:forEach items="${contactType.products}" var="prd">
newOption2 = '${prd.key}';
tmpArray.push(newOption2);
</c:forEach>
i=i+1;
}
</c:forEach>
</script>

Por acevallo

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 05 Jun 2013 05:06 pm
Buenas tardes he podido ejecutar el bloque <script> con evalScripts: true pero me presenta un error muy curioso ya que dentro de mi <script> intento ejecutar una funcion y al parece no me la reconoce espero me puedan ayudar con el problema

Por dog smoke

0 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.