Foros del Web » Programando para Internet » Javascript »

preguntita un poco retorcida

Estas en el tema de preguntita un poco retorcida en el foro de Javascript en Foros del Web. hola, me gustaria que alguien me ayudara con un pequeño problemilla. estoy haciendo una pagina web, sin tablas, sin frames, ni iframes, la estoy haciendo ...
  #1 (permalink)  
Antiguo 08/10/2008, 03:14
 
Fecha de Ingreso: octubre-2008
Mensajes: 45
Antigüedad: 15 años, 6 meses
Puntos: 0
preguntita un poco retorcida

hola, me gustaria que alguien me ayudara con un pequeño problemilla.

estoy haciendo una pagina web, sin tablas, sin frames, ni iframes, la estoy haciendo con divs.

pues bien, tengo un menu y un div que es el contenido.

como puedo hacer que en cada opcion del menu, el contenido se me cambie. sin cambiarme de pagina, en la misma pagina cambiando solo el div contenido, como ocultando y viendo capas.

algun tutorial o algun sitio donde me lo expliquen y lo pueda ver.

os lo agradeceria.

gracias
  #2 (permalink)  
Antiguo 08/10/2008, 04:08
 
Fecha de Ingreso: julio-2008
Ubicación: Alcañiz-Teruel-España
Mensajes: 182
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: preguntita un poco retorcida

Prueba este ejemplillo, es con un poco de ajax, aunque me pienso que habrá mas formas...

index.php
Código HTML:
<script>
//Funcion que crea el objeto ajax
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 actualizaContenido(datos){
	divContenido = document.getElementById('contenido');
	ajax=objetoAjax();
	ajax.open("GET", datos);
	ajax.onreadystatechange=function() {
		if (ajax.readyState==4) {
			divContenido.innerHTML = ajax.responseText
		}
	}
	ajax.send(null)
}
</script>

<div width="100%">
<table>
  <tbody>
    <tr>
      <td><div style="cursor:pointer;" onclick="javascript: actualizaContenido('1.php');">op1</div></td>
      <td><div style="cursor:pointer;" onclick="javascript: actualizaContenido('2.php');">op2</div></td>
      <td><div style="cursor:pointer;" onclick="javascript: actualizaContenido('3.php');">op3</div></td>
      <td><div style="cursor:pointer;" onclick="javascript: actualizaContenido('4.php');">op4</div></td>
    </tr>
  </tbody>
</table>
</div>
<br>
<div width="100%" id="contenido">
</div> 
Create los archivos 1.php, 2.php, 3.php y 4.php. El contenido de estos será lo que irá cambiando al pulsar las opciones.

Es algo asi lo que preguntas??

Saludos
  #3 (permalink)  
Antiguo 08/10/2008, 04:16
 
Fecha de Ingreso: octubre-2008
Mensajes: 45
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: preguntita un poco retorcida

gracias lo probare, pero lo necesitaria en javascript
  #4 (permalink)  
Antiguo 08/10/2008, 05:24
 
Fecha de Ingreso: abril-2007
Mensajes: 114
Antigüedad: 17 años
Puntos: 2
Respuesta: preguntita un poco retorcida

Hola. Soy nuevo en javascript pero esto que pides lo estuve probando estos días. Puede que no sea un ejemplo muy ortodoxo pero a mi me funciona. Prueba lo siguiente:

Código:
<html>
<head>
    <title>Untitled Page</title>
</head>
<script language="javascript" type="text/javascript">
function mostrarCapa(Capa){
    document.getElementById('Capa1').style.display='none';
    document.getElementById('Capa2').style.display='none';
    document.getElementById('Capa3').style.display='none';
    document.getElementById('Capa4').style.display='none';
    document.getElementById('Capa5').style.display='none';
    document.getElementById(Capa).style.display='block';
}
</script>
<body>

<div style="float: left; width:150px;">
<h1>Menu</h1><br />
<a href="javascript:mostrarCapa('Capa1')">Pagina 1</a><br />
<a href="javascript:mostrarCapa('Capa2')">Pagina 2</a><br />
<a href="javascript:mostrarCapa('Capa3')">Pagina 3</a><br />
<a href="javascript:mostrarCapa('Capa4')">Pagina 4</a><br />
<a href="javascript:mostrarCapa('Capa5')">Pagina 5</a><br />
</div>
<div style="float:left;">
<div id="Capa1" style="background-color: Red; display: none; width: 500px; height: 500px;">Página 1</div>
<div id="Capa2" style="background-color: blue; display: none; width: 500px; height: 500px;">Página 2</div>
<div id="Capa3" style="background-color: green; display: none; width: 500px; height: 500px;">Página 3</div>
<div id="Capa4" style="background-color: grey; display: none; width: 500px; height: 500px;">Página 4</div>
<div id="Capa5" style="background-color: orange; display: none; width: 500px; height: 500px;">Página 5</div>
</div>

</body>
</html>
Espero que te sirva. Saludos
  #5 (permalink)  
Antiguo 08/10/2008, 08:23
 
Fecha de Ingreso: julio-2008
Ubicación: Alcañiz-Teruel-España
Mensajes: 182
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: preguntita un poco retorcida

Como ya dije hay muchas formas de hacerlo. La que puso paloto esta muy bien, quizás la mejor para ti. La que puse yo se amoldaría más a páginas web que generen el contenido dinámicamente, bien consultando a una bd, a la session, etc...

Ya ves, varias formas de hacer lo mismo pero con distintos enfoques, tu decides...

Saludos y para paloto
  #6 (permalink)  
Antiguo 09/10/2008, 01:31
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Respuesta: preguntita un poco retorcida

Por fín te encuentro!

Esta respuesta la preparé para el otro hilo que cerró el bueno de JavierB. Espero que te sirva. Es muy sencillo:

Código:
<html>
<head>
<script>
function mostrar(esto){
document.getElementById(aquello).style.display="none";
document.getElementById(esto).style.display="block";
aquello=esto;
}

</script>
<style>
.pestana{
display:none;
border:solid 1px silver;
width:500px;
overflow:hidden;
margin-top:2px;
padding:5px;
font:normal 10px/15px verdana;

}
.pestana .imagenCabeza{
float:left;
padding:3px;
border:solid 1px #d0e0e0; 
margin-right:5px; 
margin-bottom:5px;
}
#continente a{
text-decoration:none;
color:black;
border:solid 1px silver;
heigt:20px;
padding:3px;
font:normal 10px/15px verdana;
text-align:center;
}
#continente a:hover{
background-color:#A0a0a0;
color:white;

}
</style>
</head>
<body onload="document.getElementById('uno').style.display='block';aquello='uno';">
<div id="continente">
<a href="#" onclick="mostrar('uno');return false">Mostrar 1</a> 
<a href="#" onclick="mostrar('dos');return false">Mostrar 2</a> 
<a href="#" onclick="mostrar('tres');return false">Mostrar 3</a> 
<a href="#" onclick="mostrar('cuatro');return false">Mostrar 4</a> 


<div id="uno" class="pestana">
<img src="http://karlankas.net/chufa2.jpg" width="200" class="imagenCabeza" />Pestana 1 Pestana 1 Pestana 1 Pestana 1 Pestana 1 Pestana 1 Pestana 1 Pestana 1 Pestana 1 Pestana 1 Pestana 1 Pestana 1 Pestana 1 Pestana 1 Pestana 1 Pestana 1 Pestana 1 Pestana 1 Pestana 1 Pestana 1 Pestana 1 Pestana 1 Pestana 1 Pestana 1 Pestana 1 
</div>
<div  id="dos" class="pestana">
Pestana 2 Pestana 2 Pestana 2 Pestana 2 Pestana 2 Pestana 2 Pestana 2 Pestana 2 Pestana 2 Pestana 2 Pestana 2 Pestana 2 Pestana 2 Pestana 2 Pestana 2 
</div>
<div  id="tres" class="pestana">
Pestana 3 Pestana 3 Pestana 3 Pestana 3 Pestana 3 Pestana 3 Pestana 3 Pestana 3 Pestana 3 Pestana 3 Pestana 3 Pestana 3 Pestana 3 
</div>
<div id="cuatro" class="pestana">
Pestana 4 Pestana 4 Pestana 4 Pestana 4 Pestana 4 Pestana 4 Pestana 4 Pestana 4 
</div>
</div>
</body>
</html>
Un saludo!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #7 (permalink)  
Antiguo 10/10/2008, 01:22
 
Fecha de Ingreso: octubre-2008
Mensajes: 45
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: preguntita un poco retorcida

ok, lo probare, estoy un poco pez, a ver si me sale algo de probecho..



gracias
  #8 (permalink)  
Antiguo 10/10/2008, 03:46
 
Fecha de Ingreso: octubre-2008
Mensajes: 45
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: preguntita un poco retorcida

ya se que soy una pesada, pero ahora me surge una duda,

si yo solo tengo un div, y en cada opcion del menu quiero que ese div cambie solo el contenido , y que ese contenido tenga un archivo, a ver,

tengo dudas existenciales.

no se si me explico o no.

yo tengo 5 archivos con informacion dentro, y un solo div central.
cuando en el menu elijo una opcion, me tiene que mostrar el contenido de uno de los archivos.

lo que me habeis dicho esta bien, lo he probado pero mi pregunta ahora es esa.
y utilizando solo javascript y html.

si alguien me puede ayudar se lo agradeceria.

gracias
  #9 (permalink)  
Antiguo 10/10/2008, 05:48
 
Fecha de Ingreso: octubre-2008
Mensajes: 45
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: preguntita un poco retorcida

he conseguido algo pero me falla esto: alguien sabe donde esta el error????


function saludo(indice)
{
var texto="";
texto= parseInt (texto);

switch (indice)
{
case 1:
texto= " Suspendisse nunc ligula, convallis in, tempor imperdiet, dapibus quis, nisi.";

break;

case 2:
texto= " Aliquam sodales molestie ligula. Praesent eleifend vehicula lorem. " ;

break;

case 3:
texto= "Mauris augue tellus, commodo ut, gravida non, porta non, sapien. ";

break;

case 4;
texto= "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. ";

break;

default;
texto= "error";

}

document.getElementById('capa_contenido').innerHTM L = ' texto ';
}
  #10 (permalink)  
Antiguo 10/10/2008, 07:10
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: preguntita un poco retorcida

Así a simple vista, veo dos errores, y es que:
Código javascript:
Ver original
  1. texto = parseInt(texto);
No tiene sentido en ese contexto.

Y la segunda es que la variable texto al asignarla al innerHTML debe ir sin las comillas.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #11 (permalink)  
Antiguo 13/10/2008, 01:35
 
Fecha de Ingreso: octubre-2008
Mensajes: 45
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: preguntita un poco retorcida

ok, pero sigue sin funcionar.

como haria lo de

var texto="";
texto= parseInt (texto);

?????
  #12 (permalink)  
Antiguo 13/10/2008, 05:57
 
Fecha de Ingreso: octubre-2008
Mensajes: 45
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: preguntita un poco retorcida

ya lo he resuelto, gracias chicos. sois lo mejor
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 08:04.