Foros del Web » Programando para Internet » Javascript »

php con javascript no se ejecuta dentro de div cargado con ajax

Estas en el tema de php con javascript no se ejecuta dentro de div cargado con ajax en el foro de Javascript en Foros del Web. Hola a todos, tengo una pagina php la cual tiene una funcion que sirve para habilitar o desabilitar cajas de texto luego de hacer click ...
  #1 (permalink)  
Antiguo 21/03/2012, 16:15
 
Fecha de Ingreso: septiembre-2010
Mensajes: 74
Antigüedad: 13 años, 7 meses
Puntos: 1
php con javascript no se ejecuta dentro de div cargado con ajax

Hola a todos, tengo una pagina php la cual tiene una funcion que sirve para habilitar o desabilitar cajas de texto luego de hacer click en los checkbox correspondientes. Esta pagina quiero cargarla en un div de otra pagina, esto lo hago con ajax. El problema es que cuando llamo a la pagina php para mostrarla en el div, la funcion deja de andar.

Primera pagina la cual tiene el div

Código HTML:
<script lang="javascript">
function objetoAjax(){
	var xmlhttp=false;
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
		   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			xmlhttp = false;
  		}
	}

	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}




//_________________________________________________________________________
function buscar(){ //esta es la funcion que envia los datos de manea asincrona
	//div donde  mostrararemos  los datos de la consulta 
	divResultado = document.getElementById('resultado');

	//tomamos el valor enviado del formulario de envio
	clave=document.formulario.clave.value;

	//instanciamos el objetoAjax
	ajax=objetoAjax();
	//usamos el medoto POST
	//archivo que realizará la operacion
	ajax.open("POST", "buscar_cod_vender.php",true);
	//mostramos una imagen mientras cargamos el resultado de la consulta
	//divResultado.innerHTML= '<img src="images/ajax.gif">';
	ajax.onreadystatechange=function() {
		if (ajax.readyState==4) {
			//visualizamos el resultado correscpondiente
			divResultado.innerHTML = ajax.responseText
		}
	}
	ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	//enviando los valoress
	ajax.send("clave="+clave)
}
</script>
<html>
    
    <form action="" name="formulario" >
<input type="text" id="clave"  > <button type="button" onClick="buscar()">buscar</button>
    </form>

<div id="resultado">

  </div>
</html> 
Segunda pagina, esta se cargara dentro del div de la primera y es la que tiene la funcion

Código HTML:
<?php
include_once 'lib.php';
$cod =$_POST['clave'];


$conexion= mysql_connect($dbhost, $dbuser, $dbpassword);
mysql_select_db($database, $conexion);
$result = mysql_query("SELECT id_stock, codigo, descrip, pre_min, pre_may, disponibles  FROM stock where activo = '1'and codigo = $cod", $conexion);
?>
<form name="vender" method="post" action="vender_prod.php">
    <table border="2">
        <tr>
            <th>ID</th>
            <th>Codigo</th>
            <th>Descrip</th>
            <th>Prec.Min</th>
            <th>Prec.May</th>
            <th>Disponibles</th>
            <th></th>
<!--            <th style='border: none'></th>-->
            <th>Cantidad</th>
 
        </tr>
        <?php
        $i = 0;
        while ($row = mysql_fetch_array($result)) {
            ?>
            <tr>
                <td><?php echo $row['id_stock'] ?></td>
                <td><?php echo $row['codigo'] ?></td>
                <td style="width: 500px"><?php echo $row['descrip'] ?></td>
                <td align="right"><?php echo "$"; echo $row['pre_min'] ?></td>
                <td align="right"><?php echo "$"; echo $row['pre_may'] ?></td>
                <td align="center"><?php echo $row['disponibles'] ?></td>
                <td><input id="chk_<?php echo $i ?>" name="seleccion[]" type="checkbox" value="<?php echo$row['id_stock'] ?>" class="chk"/></td>
<!--                <td style="border: none"></td>-->
                <td><input id=txt_<?php echo $i ?>" name="cantidad[]" disabled="disabled" type="text" style="width: 60" class="txt"/></td>  
            </tr>
 
            <?php
            $i++;
        }
        ?>
    </table>
    <br />
    <input type="submit" name="submit" value="Enviar">
</form>
 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script type="text/javascript">
    
    $(document).ready(function(){ 
       
        $(".chk").change(function(){
            var comentario = $( '.txt', $( this ).parents ( 'tr' ) );
            if( $(this).is(':checked')){            
                comentario.removeAttr('disabled');
            } else {
                comentario.attr('disabled', true);
            }
        });
    });
    
</script> 
Ayudaaaaaaaaaaa!!!
  #2 (permalink)  
Antiguo 21/03/2012, 16:23
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: php con javascript no se ejecuta dentro de div cargado con ajax

El tema pertenece a AJAX JS-Frameworks

Por que declaras un evento en Jquery por un archivo llamado por AJAX (?).
__________________
Mono programando!
twitter.com/eguimariano
  #3 (permalink)  
Antiguo 21/03/2012, 17:26
 
Fecha de Ingreso: septiembre-2010
Mensajes: 74
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: php con javascript no se ejecuta dentro de div cargado con ajax

Cita:
Iniciado por SirDuque Ver Mensaje
El tema pertenece a AJAX JS-Frameworks

Por que declaras un evento en Jquery por un archivo llamado por AJAX (?).
asi me carga bien la pagina en el div. el problema no es ese, sino que la funcion que habilita y desabilita los textbox anda si cargo la pagina solo y cuando la cargo en el div no.
  #4 (permalink)  
Antiguo 29/03/2012, 13:55
 
Fecha de Ingreso: junio-2009
Mensajes: 29
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: php con javascript no se ejecuta dentro de div cargado con ajax

Pues yo tenía un problema similar lo que hice fue crear el texto en una clase diferente y llamar el texto desde donde se supone debería estar el javascript.

Es decir el texto del javascript es:
$script = "
<script src='js/jquery-1.2.6.min.js' type='text/javascript'></script>
<script type='text/javascript' src='js/swfobject.js'></script>
<script type='text/javascript'>

swfobject.embedSWF(
'open-flash-chart.swf', 'my_chart',
'380', '200', '9.0.0', 'expressInstall.swf',
{'data-file':'gallery/3d-bar-chart.php'} );

</script>";

e hice algo similar con el html entonces retornaba eso y ya, me sale tal cual lo que necesitaba en primera instancia pero que por una extraña razón después de usar AJAX no dejaba mostrar.
Espero les sirva!

Etiquetas: ajax, cargado, ejecuta, formulario, html, mysql, php
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:18.