Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] ¿Alguien me chequea esto?

Estas en el tema de ¿Alguien me chequea esto? en el foro de Javascript en Foros del Web. No sé donde puede estar el fallo, los botones no funcionan. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; ...
  #1 (permalink)  
Antiguo 28/02/2013, 19:24
Avatar de Luisa29  
Fecha de Ingreso: enero-2013
Mensajes: 193
Antigüedad: 11 años, 10 meses
Puntos: 4
Pregunta ¿Alguien me chequea esto?

No sé donde puede estar el fallo, los botones no funcionan.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento</title>


<style type="text/css">
<!--
@import url("estilo1.css");
-->
</style>
<script>
function nuevoAjax(){

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 Cargar(url){


var contenido = document.getElementById('contenido');

ajax=nuevoAjax();
ajax.open("GET", url,true);
ajax.onreadystatechange=function(){

if(ajax2.readyState==4){

contenido.innerHTML=ajax.responseText;

}

}

ajax.send(null);



}
</script>
</head>

<body>
<div id="menu"><?php include("menu.php"); ?></div>
<div id="contenido"><?php include("contenido1.php"); ?></div>
</body>
</html>


Y esto para menu.php

<a href="#" onclick="Cargar('contenido1.php');">Link1</a><br />
<a href="#" onclick="Cargar('contenido2.php');">Link2</a><br />
<a href="#" onclick="Cargar('contenido3.php');">Link3</a><br />


Pero no funciona. ¿Alguien sabe cual es el fallo?
  #2 (permalink)  
Antiguo 28/02/2013, 19:46
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 6 meses
Puntos: 834
Respuesta: ¿Alguien me chequea esto?

Código PHP:
if(ajax2.readyState==4){ 
Lo miré por encima, pero de dónde sale ajax2?
Otra cosa que veo es que no estás evitando la caché. Podrías agregarle un signo de interrogación y una cadena aleatoria a la url para evitar la caché, que genera problemas en algunos navegadores.
  #3 (permalink)  
Antiguo 28/02/2013, 20:01
Avatar de Luisa29  
Fecha de Ingreso: enero-2013
Mensajes: 193
Antigüedad: 11 años, 10 meses
Puntos: 4
Respuesta: ¿Alguien me chequea esto?

Cita:
Iniciado por Panino5001 Ver Mensaje
Código PHP:
if(ajax2.readyState==4){ 
Lo miré por encima, pero de dónde sale ajax2?
Otra cosa que veo es que no estás evitando la caché. Podrías agregarle un signo de interrogación y una cadena aleatoria a la url para evitar la caché, que genera problemas en algunos navegadores.
Era esooooooooooooooo !!!!!!!!!!!!

Funcionaaaaa !!!!!!

Otra cosilla, ¿para cambiar dos div distintos de la misma página con el mismo botón?. Ya con eso te hago un monumento.
  #4 (permalink)  
Antiguo 28/02/2013, 20:09
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: ¿Alguien me chequea esto?

Cita:
Iniciado por Luisa29 Ver Mensaje
Era esooooooooooooooo !!!!!!!!!!!!

Funcionaaaaa !!!!!!

Otra cosilla, ¿para cambiar dos div distintos de la misma página con el mismo botón?. Ya con eso te hago un monumento.
2 divs con el mismo contenido?

Código Javascript:
Ver original
  1. var contenido = document.getElementById('contenido');
  2.  var contenido2 = document.getElementById('contenido2');
  3. ajax=nuevoAjax();
  4. ajax.open("GET", url,true);
  5. ajax.onreadystatechange=function(){
  6.  
  7. if(ajax2.readyState==4){
  8.  
  9. contenido.innerHTML=ajax.responseText
  10. contenido2.innerHTML=ajax.responseText
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 28/02/2013, 20:16
Avatar de Luisa29  
Fecha de Ingreso: enero-2013
Mensajes: 193
Antigüedad: 11 años, 10 meses
Puntos: 4
Respuesta: ¿Alguien me chequea esto?

Cita:
Iniciado por emprear Ver Mensaje
2 divs con el mismo contenido?

Código Javascript:
Ver original
  1. var contenido = document.getElementById('contenido');
  2.  var contenido2 = document.getElementById('contenido2');
  3. ajax=nuevoAjax();
  4. ajax.open("GET", url,true);
  5. ajax.onreadystatechange=function(){
  6.  
  7. if(ajax2.readyState==4){
  8.  
  9. contenido.innerHTML=ajax.responseText
  10. contenido2.innerHTML=ajax.responseText
Es lo malo, serían contenidos distintos. Estoy rompiéndome la cabeza para conseguirlo.
Esto mismo lo acabo de hacer, pero claro carga el mismo contenido en divs distintos.

sería algo así:

<div id="contenido"><?php include("contenido1.php"); ?></div>
<div id="contenido2"><?php include("contenido4.php"); ?></div>

Y poner esto en el ajax:

contenido.innerHTML=ajax.responseText;
contenido2.innerHTML=ajax.responseText;

¿Pero qué pongo en los botones?

<a href="#" onclick="Cargar('contenido1.php');">Link1</a><br />
<a href="#" onclick="Cargar('contenido2.php');">Link2</a><br />
<a href="#" onclick="Cargar('contenido3.php');">Link3</a><br />
  #6 (permalink)  
Antiguo 28/02/2013, 20:35
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: ¿Alguien me chequea esto?

Cita:
Iniciado por Luisa29 Ver Mensaje
Es lo malo, serían contenidos distintos. Estoy rompiéndome la cabeza para conseguirlo.
Esto mismo lo acabo de hacer, pero claro carga el mismo contenido en divs distintos.

sería algo así:

<div id="contenido"><?php include("contenido1.php"); ?></div>
<div id="contenido2"><?php include("contenido4.php"); ?></div>

Y poner esto en el ajax:

contenido.innerHTML=ajax.responseText;
contenido2.innerHTML=ajax.responseText;

¿Pero qué pongo en los botones?

<a href="#" onclick="Cargar('contenido1.php');">Link1</a><br />
<a href="#" onclick="Cargar('contenido2.php');">Link2</a><br />
<a href="#" onclick="Cargar('contenido3.php');">Link3</a><br />
ahi veo 3 links, volvamos a lo de un botón que carga 2 divs
tu función recibe un parámetro, la url

function Cargar(url){

bueno, hacé que reciba 2

function Cargar(url,elDiv){

luego, abajo
Código:
var contenido = document.getElementById(elDiv);
es decir, en ligar del nombre de un div específico, el nombre de la variable que lo representa,

Luego en tu button

Código HTML:
Ver original
  1. <button onclick="Cargar('pagina1.php','div1');Carga('pagina2.php','div2')">cargar</button>

podrías pasar más incluso. Otra variante que puede resultar útil a veces, aunque todo dependerá de que tipo de contenido cargas, es enviar los datos desde un json, u xml, o simplemente una cadena d texto susceptible de ser dividida, ejemplo, si tu responseText es = "Dato1|Dato2|Dato3" le hacés un
var dato = ajax.responseText.split('|'), y luego
contenido1.innerHTML=dato[0];
contenido2.innerHTML=dato[1];
contenido3.innerHTML=dato[2];
etc.
Como ves tenés varias alternativas
SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #7 (permalink)  
Antiguo 01/03/2013, 06:47
Avatar de Luisa29  
Fecha de Ingreso: enero-2013
Mensajes: 193
Antigüedad: 11 años, 10 meses
Puntos: 4
Respuesta: ¿Alguien me chequea esto?

emprear MUCHAS GRACIAS !! Me va genial. Es impresionante, os lo agradezco mucho. A veces me atoro pero siempre consigo salir con vuestra gran ayuda.

Ahora a disfrutar.

Etiquetas: ajax, funcion, html, 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 00:03.