Foros del Web » Programando para Internet » Javascript »

Include dinamico con #

Estas en el tema de Include dinamico con # en el foro de Javascript en Foros del Web. Hola a todos, soy nuevo en el foro. Estoy programando mi pagina web en PHP y JS. La estoy dividiendo en secciones por ejemplo ?action=contact ...
  #1 (permalink)  
Antiguo 04/11/2010, 10:54
Avatar de tomymolina  
Fecha de Ingreso: noviembre-2010
Mensajes: 50
Antigüedad: 13 años, 5 meses
Puntos: 1
Mensaje Include dinamico con #

Hola a todos, soy nuevo en el foro. Estoy programando mi pagina web en PHP y JS. La estoy dividiendo en secciones por ejemplo ?action=contact o ?action=posts&go=view.

Yo lo que deseaba hacer es estar en una sección y cambiar a otra, por ejemplo, pero solo refrescar la div donde se muestra el contenido, no volver a cargar la pagina. Eso lo conseguí, pero no consegui mantener las urls.

Si tengo un enlace que carga una pagina en una div con jquery al refrescar la pagina queda como al principio, no hay bookmarks ni puedo volver atrás.

Quería que al introducir un enlace tipo miweb.com/index.php#contact cargara la sección del contacto y no la pagina principal. Intento explicarme lo mejor posible pero no sé si me explico bien.

Un ejemplo de pagina es tuenti.com que tu estas viendo fotos mientras ves un video de youtube o hablas por el chat, yo quiero hacer ese tipo de cosas, solo es íl include lo demás ya tengo el code más o menos.

De antemano, gracias por vuestra ayuda.
  #2 (permalink)  
Antiguo 14/11/2010, 11:36
Avatar de tomymolina  
Fecha de Ingreso: noviembre-2010
Mensajes: 50
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Include dinamico con #

Bueno ya que nadie me responde solo esta pequeña pregunta.

Hay varias formas de obtener la url con php pero ninguna me obtiene #variables...

no ai ninguna forma de que detecte www.miweb.com/carpeta/index.php#action=variable

Solo eso, gracias de antemano.
  #3 (permalink)  
Antiguo 14/11/2010, 12:32
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Include dinamico con #

El hashtag no llega al servidor, no lo podrás recoger con PHP.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #4 (permalink)  
Antiguo 14/11/2010, 15:07
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Include dinamico con #

Hola

No hay manera de poder cambiar la url ya que estás trabajando con ajax o módulos

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #5 (permalink)  
Antiguo 14/11/2010, 15:20
Avatar de tomymolina  
Fecha de Ingreso: noviembre-2010
Mensajes: 50
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Include dinamico con #

Vale gracias por responder tan pronto @_cronos2 y @Adler . Me podeis guiar con un link,unas lineas de code o yo que se, para conseguir el include con # como el sistema de tuenti? Gracias de antemano.
  #6 (permalink)  
Antiguo 14/11/2010, 15:27
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Include dinamico con #

Pues la verdad es que no sé qué decirte, el código de tuenti está en 3 o 4 líneas, es completamente ininteligible -.-'
@Adler, bienvenido de nuevo, ya pensé que nos habías abandonado xD
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #7 (permalink)  
Antiguo 14/11/2010, 15:35
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Include dinamico con #

Hola

El problema es que simplemente no es posible. En caso que esa página haga algo parecido es una percepción tú tienes, pero no es real

Suerte
pd: @_cronos2, demasiado curro este trimestre
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #8 (permalink)  
Antiguo 15/11/2010, 09:37
Avatar de tomymolina  
Fecha de Ingreso: noviembre-2010
Mensajes: 50
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Include dinamico con #

Vale, gracias, entonces dejaré el tema pero yo aun asi sigo creyendo que es posible xD.

Un saludo, tomymolina
  #9 (permalink)  
Antiguo 15/11/2010, 10:28
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 11 meses
Puntos: 834
Respuesta: Include dinamico con #

Por las dudas aclaro un poco: lo que no se puede, sin recargar, es modificar la url; pero sí es posible, sin recargar, modificar el hash únicamente.
Ya van varios mensajes que preguntan cómo hace facebook con su visor de fotos para modificar la url sin recargar. Si a lo que se refieren es a modificar el hash, es decir, el agregado de un signo # con una seria de caracteres a continuación, éso sí es perfectamente posible sin recargar. Lo que no es posible es realizar cualquier otro cambio en la url sin provocar una recarga (si eso parece que sucede, no es que la página no recarga sino que la recarga no se percibe a simple vista, pero es fácilmente comprobable la recarga con herramientas como firebug).
Un ejemplo de modificación del hash sin provocar recarga (también de obtensión del hash):
Código PHP:
<!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>test</title>
<
script type="text/javascript">
onload=function(){alert('cargamos');}
</script>

</head>

<body>
<form id="form1" name="form1" method="post" action="">
  <input onclick="location.hash='hola'" type="button" name="button" id="button" value="cambiar" />
  <input onclick="location.hash=''" type="button" name="button" id="button" value="cambiar sin hash" />
  <input type="button" name="button2" id="button2" value="leer" onclick="alert(location.hash);" />
</form>
</body>
</html> 
  #10 (permalink)  
Antiguo 16/11/2010, 15:16
Avatar de tomymolina  
Fecha de Ingreso: noviembre-2010
Mensajes: 50
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Include dinamico con #

@panino5001 gracias por responder, tie entiendo. Voy probar el code a ver que obtengo y mirar facebook a ver si consigo resolver mi problema. os comento luego.
  #11 (permalink)  
Antiguo 16/11/2010, 23:38
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 11 meses
Puntos: 834
Respuesta: Include dinamico con #

Bueno, te dejo un ejemplo de lo que pedías al principio (sólo deberás tener en cuenta que si el objetivo es que funcionen los botones atrás y adelante del navegador, si bien esto funcionará sin problemas a partir de explorer 8 y en general en todos los navegadores modernos, para versiones anteriores de explorer hay que hacer algunas cosas adicionales)
Código PHP:
<?php 
if(isset($_GET['q'])){
    switch(
$_GET['q']){
        case 
'a':
        echo 
'página a';
        break;
        case 
'b':
        echo 
'página b';
        break;
        case 
'c':
        echo 
'página c';
        break;
        case 
'd':
        echo 
'página d';
        break;
        default:
        echo 
'contenido por defecto';
    }
    exit;
}
?>
<!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>ejemplo</title>
<style type="text/css">
.menu{ width:50px; line-height:20px; font-family:Verdana, Geneva, sans-serif; font-size:10px; background:#F93; cursor:pointer; text-align:center; float:left; margin-right:5px;}
#pp{ clear:both; margin-top:20px;}
</style>
<script type="text/javascript">
function http(){
    if(typeof window.XMLHttpRequest!='undefined'){
        return new XMLHttpRequest();    
    }else{
        try{
            return new ActiveXObject('Microsoft.XMLHTTP');
        }catch(e){
            alert('Su navegador no soporta AJAX');
            return false;
        }    
    }    
}
function request(url,callback,params){
    ns.p=params.q;
    params.q=params.q.split('#').join('')
    var H=new http();
    if(!H)return;
    var p='';
    for(var i in params){
        p+='&'+i+'='+escape(params[i]);    
    }
    H.open('get',url+'?'+p+'&'+Math.random(),true);
    H.onreadystatechange=function(){
        if(H.readyState==4){
            callback(H.responseText);
            H.onreadystatechange=function(){}
            H.abort();
            H=null;
        }
    }
    H.send(null);
}
var ns={}
ns.p=-1;
onload=function(){
        setInterval(function(){if(location.hash!=ns.p){request('<?php echo basename($_SERVER['PHP_SELF']) ?>',function(r){document.getElementById('pp').innerHTML=r;},{'q':location.hash});};},4);
}
</script>
</head>

<body>
<div onclick="location.hash='a'" class="menu">a</div>
<div onclick="location.hash='b'" class="menu">b</div>
<div onclick="location.hash='c'" class="menu">c</div>
<div onclick="location.hash='d'" class="menu">d</div>

<div id="pp"></div>

</body>
</html>
  #12 (permalink)  
Antiguo 17/11/2010, 09:28
Avatar de tomymolina  
Fecha de Ingreso: noviembre-2010
Mensajes: 50
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Include dinamico con #

@Panino5001 muchisimas gracias tio en serio, no sé como agradecertelo. Gracias :) TEMA RESUELTO!

Un saludo.
  #13 (permalink)  
Antiguo 19/11/2010, 01:40
Avatar de tomymolina  
Fecha de Ingreso: noviembre-2010
Mensajes: 50
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Include dinamico con #

No resuelto del todo porque las paginas tipo ?action=contacto es facil con este sistema pero las paginas que son más complejas como ?action=posts&go=view&id=15 Ese 15 es el numero del post no ningun include como podria convertir urls tipo ?action=post&go=view a #posts&go=view&id=15 ?

Si es un tema muy complicado de hace tendre que obtar por mirar como hace facebook.
  #14 (permalink)  
Antiguo 19/11/2010, 03:28
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 11 meses
Puntos: 834
Respuesta: Include dinamico con #

La verdad es que no veo la diferencia ni la dificultad por más parámetros que haya:
Código PHP:
<?php 
if(isset($_GET['q'])){
    
parse_str($_GET['q'],$output);
    echo 
'<pre>';
    
print_r($output);
    echo 
'</pre>';
    exit;
}
?>
<!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>ejemplo</title>
<style type="text/css">
.menu{ width:50px; line-height:20px; font-family:Verdana, Geneva, sans-serif; font-size:10px; background:#F93; cursor:pointer; text-align:center; float:left; margin-right:5px;}
#pp{ clear:both; margin-top:20px;}
</style>
<script type="text/javascript">
function http(){
    if(typeof window.XMLHttpRequest!='undefined'){
        return new XMLHttpRequest();    
    }else{
        try{
            return new ActiveXObject('Microsoft.XMLHTTP');
        }catch(e){
            alert('Su navegador no soporta AJAX');
            return false;
        }    
    }    
}
function request(url,callback,params){
    ns.p=params.q;
    params.q=params.q.split('#').join('')
    var H=new http();
    if(!H)return;
    var p='';
    for(var i in params){
        p+='&'+i+'='+escape(params[i]);    
    }
    H.open('get',url+'?'+p+'&'+Math.random(),true);
    H.onreadystatechange=function(){
        if(H.readyState==4){
            callback(H.responseText);
            H.onreadystatechange=function(){}
            H.abort();
            H=null;
        }
    }
    H.send(null);
}
var ns={}
ns.p=-1;
onload=function(){
        setInterval(function(){if(location.hash!=ns.p){request('<?php echo basename($_SERVER['PHP_SELF']) ?>',function(r){document.getElementById('pp').innerHTML=r;},{'q':location.hash});};},100);
}
</script>
</head>

<body>
<div onclick="location.hash='action=posts&go=view&id=15'" class="menu">a</div>
<div onclick="location.hash='action=posts&go=view&id=16'" class="menu">b</div>
<div onclick="location.hash='action=posts&go=view&id=17'" class="menu">c</div>
<div onclick="location.hash='action=posts&go=view&id=18'" class="menu">d</div>

<div id="pp"></div>

</body>
</html>
  #15 (permalink)  
Antiguo 19/11/2010, 04:34
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 11 meses
Puntos: 834
Respuesta: Include dinamico con #

O si querés mantener las variables dentro de la superglobal $_GET:
Código PHP:
<?php 
if(isset($_GET['q'])){
    
$a=$_GET['q'];
    unset(
$_GET);
    
parse_str($a,$_GET);
    echo 
'<pre>';
    
print_r($_GET);
    echo 
'</pre>';
    exit;
}
?>
<!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>ejemplo</title>
<style type="text/css">
.menu{ width:50px; line-height:20px; font-family:Verdana, Geneva, sans-serif; font-size:10px; background:#F93; cursor:pointer; text-align:center; float:left; margin-right:5px;}
#pp{ clear:both; margin-top:20px;}
</style>
<script type="text/javascript">
function http(){
    if(typeof window.XMLHttpRequest!='undefined'){
        return new XMLHttpRequest();    
    }else{
        try{
            return new ActiveXObject('Microsoft.XMLHTTP');
        }catch(e){
            alert('Su navegador no soporta AJAX');
            return false;
        }    
    }    
}
function request(url,callback,params){
    ns.p=params.q;
    params.q=params.q.split('#').join('')
    var H=new http();
    if(!H)return;
    var p='';
    for(var i in params){
        p+='&'+i+'='+escape(params[i]);    
    }
    H.open('get',url+'?'+p+'&'+Math.random(),true);
    H.onreadystatechange=function(){
        if(H.readyState==4){
            callback(H.responseText);
            H.onreadystatechange=function(){}
            H.abort();
            H=null;
        }
    }
    H.send(null);
}
var ns={}
ns.p=-1;
onload=function(){
        setInterval(function(){if(location.hash!=ns.p){request('<?php echo basename($_SERVER['PHP_SELF']) ?>',function(r){document.getElementById('pp').innerHTML=r;},{'q':location.hash});};},100);
}
</script>
</head>

<body>
<div onclick="location.hash='action=posts&go=view&id=15'" class="menu">a</div>
<div onclick="location.hash='action=OTRA&go=hhh&id=16'" class="menu">b</div>
<div onclick="location.hash='action=BLA&go=jjj&id=17'" class="menu">c</div>
<div onclick="location.hash='action=foo&go=kkk&id=18'" class="menu">d</div>

<div id="pp"></div>

</body>
</html>
Como ves, es más de lo mismo.
  #16 (permalink)  
Antiguo 19/11/2010, 13:40
Avatar de tomymolina  
Fecha de Ingreso: noviembre-2010
Mensajes: 50
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Include dinamico con #

Bien ! Ahora si ! Era sencillo pero sino me pusieras los dos ultimos ejemplos no me enteraba. Os dejo el code que me quedo para si alguien tiene el mismo problema

Código:


<?php  

if(isset($_GET['q'])){ 
    parse_str($_GET['q'],$output); 
    echo '<pre>'; 
    print_r($output); 
    echo '</pre>'; 

/* Para saber si ai varias variables en la url */	
if (count($output) == 1){
	$next = '';//Si solo es #action=valor no escribimos nada
} 
elseif (count($output) == 2){
   $next = '&go='.$output["go"] ;
} 
elseif (count($output) == 3){
   $next = '&go='.$output["go"].'&id='.$output["id"] ;	
}

	
	switch($_GET['q']){
        case 'action=contacto':
        include ("files/contacto/index.php");
        break;
		
		case 'action=desing':
		include ("files/desing/index.php");
		break;
		
		case 'action=posts'.$next:
		include ("files/news/PHPNews/index.php");
		break;
		



        default:
        echo 'contenido por defecto';
    }

    exit; 
} 
?> 





<!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>ejemplo</title> 
<style type="text/css"> 
.menu{ width:50px; line-height:20px; font-family:Verdana, Geneva, sans-serif; font-size:10px; background:#F93; cursor:pointer; text-align:center; float:left; margin-right:5px;} 
#pp{ clear:both; margin-top:20px;} 
</style> 
<script type="text/javascript"> 
function http(){ 
    if(typeof window.XMLHttpRequest!='undefined'){ 
        return new XMLHttpRequest();     
    }else{ 
        try{ 
            return new ActiveXObject('Microsoft.XMLHTTP'); 
        }catch(e){ 
            alert('Su navegador no soporta AJAX'); 
            return false; 
        }     
    }     
} 
function request(url,callback,params){ 
    ns.p=params.q; 
    params.q=params.q.split('#').join('') 
    var H=new http(); 
    if(!H)return; 
    var p=''; 
    for(var i in params){ 
        p+='&'+i+'='+escape(params[i]);     
    } 
    H.open('get',url+'?'+p+'&'+Math.random(),true); 
    H.onreadystatechange=function(){ 
        if(H.readyState==4){ 
            callback(H.responseText); 
            H.onreadystatechange=function(){} 
            H.abort(); 
            H=null; 
        } 
    } 
    H.send(null); 
} 
var ns={} 
ns.p=-1; 
onload=function(){ 
        setInterval(function(){if(location.hash!=ns.p){request('<?php echo basename($_SERVER['PHP_SELF']) ?>',function(r){document.getElementById('pp').innerHTML=r;},{'q':location.hash});};},100); 
} 
</script> 
</head> 

<body> 
<div onclick="location.hash='action=desing'" class="menu">desing</div> 
<div onclick="location.hash='action=contacto'" class="menu">contacto</div> 
<div onclick="location.hash='action=posts&go=view&id=17'" class="menu">c</div> 
<div onclick="location.hash='action=posts&go=view&id=18'" class="menu">d</div> 

<div id="pp"></div> 

</body> 
</html>
Ahora el files/news/PHPNews/index.php para luego poder incluir mas urls:


Código:
<?php
$atras = "action=posts&go=";
switch ($_GET['q'])
{

case $atras.'add':
 	echo "añadir";
	break;
case $atras.'view':
	include('files/news/PHPNews/PHPPost.php');
	break;
case $atras.'edit':
	include('files/news/PHPNews/Manage/PHPEdit.php');
	break;
case $atras.'all':
 include ('files/news/PHPNews/all.php');
 break;
 
case 0:
default:
echo 'default';
// include ('files/news/PHPNews/all.php');
}
?>
  #17 (permalink)  
Antiguo 20/11/2010, 09:27
Avatar de tomymolina  
Fecha de Ingreso: noviembre-2010
Mensajes: 50
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Include dinamico con #

Hola de nuevo, ahora las urls funccionan a la perfeccion. El problema son los formularios, yo tengo el formulario en el mismo archivo que el que recive el formulario. Lo llamo de la siguiente manera:

Código PHP:
<!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=ISO-8859-1" />

</head>


<body>


<?php
        
include ("config.php");
if(isset(
$SESSION)){
    
header ("location: #".$SeccionsPrefix."=user&go");
} else { 
?>

<div class="p_body">
<div class="p_title">
Login
</div>
<div class="p_content">

<form action="#action=user&go=login" method="POST" name="Entrar">
<center>

<!-- Ponemos la tabla con el login -->
<table width="21%" border="0">
  <tr >
    <td><strong>Login</strong></td>
    <td>
      <input type="text" id="login" name="login" />
    </td>
  </tr>
  
  <tr>
    <td><strong>Password</strong></td>
    <td>
      <input id="password" type="password" name="pass" />
   </td>
   
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>
      <input type="submit" name="entrar"  value="Entrar" class="button" />
    </td>
  </tr>
</table>
<!-- cerramos la tabla --></center></form>

</td>
</tr>
</table>
</div>
</div>

<?php

// incluimos el archivo de conexion
// recibimos el formulario
if(isset($_POST['entrar']) && $_POST['entrar'] == 'Entrar'){
// comprobamos que el formulario no envie campos vacios
if(!empty($_POST['login']) && $_POST['pass']){
    
    
    
$login htmlspecialchars(trim($_POST['login']));
    
$pass sha1(md5(trim($_POST['pass']))); // encriptamos en MD5 para despues comprar (Modificado)
    // $query="SELECT * FROM usuarios WHERE login='$login'"; Antes
    
$link=mysql_connect($server,$dbuser,$dbpass);
 
    
$query sprintf("SELECT usuarios.login,
                             usuarios.nombre,
                              usuarios.apaterno, 
                             usuarios.amaterno,
                             usuarios.email
                       FROM usuarios WHERE usuarios.login='%s' && usuarios.password = '%s'"
,  // Ahora
               
mysql_real_escape_string($login),mysql_real_escape_string($pass));       
      
$result=mysql_db_query($database,$query,$link);
      
// if(mysql_num_rows($result)==0){ // antes
      
if(mysql_num_rows($result)){ // nos devuelve 1 si encontro el usuario y el password
      
        
$array=mysql_fetch_array($result);
         
//  if($array["password"]==crypt($pass,"semilla") ){ // Antes
          /* Comprobamos que el password encriptado en la BD coincide con el password que nos han dado al encriptarlo. Recuerda usar semilla para encriptar los dos passwords. */
         
$_SESSION["login"]=$array["login"];
         
$_SESSION["nombre"]=$array["nombre"];
         
$_SESSION["apaterno"]=$array["apaterno"];
         
$_SESSION["amaterno"]=$array["amaterno"];
         
$_SESSION["email"]=$array["email"]; // Agregado Nuevo


//$redirect = base64_decode($output["id"]);



//if (empty($redirect)){
header ("location: #".$SeccionsPrefix."=home");    
    
//} else {

//header ("location: ".$redirect."");
    //}
    

       
}  else {
           
           
//login o password incorrecots
           
echo '
<script>alert("Los datos introducidos no son correctos"); </script>'
;
           
  
// Ahora
      

       


}else{
    
// si el formulario envia algun campo vacio
// enviamos un mensaje de error
echo '<script>alert("Hay campos vacios en el login"); </script>';
}
}

/* Y cerramos el else */ 
?>

</body></html>
Pero al poner por ejemplo action="#miubicacion" no me recibe los datos del formulario simplemente me refresca la pagina, prove con jquery y nada, prove con [URL="http://www.php-hispano.net/foros/Ajax/27840-enviar-formulario-con-ajax"]esto[/URL] y nada. Si consiguieras hacer esto ya serias dios jeje Un saludo
  #18 (permalink)  
Antiguo 20/11/2010, 09:45
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 11 meses
Puntos: 834
Respuesta: Include dinamico con #

No entiendo tu duda ni tu objetivo. Si querés enviar un formulario a una página de proceso, envialo con ajax y punto, no sé para qué necesitás definir un action del tipo #algo. Pareciera que no comprendiste bien cómo funciona el código que puse como ejemplo. La idea es que entiendas cómo funciona cada cosa, en especial la función request y el callback que la misma utiliza, para que puedas crear funciones semejantes y usar callbacks que hagan otras cosas.
  #19 (permalink)  
Antiguo 20/11/2010, 11:46
Avatar de tomymolina  
Fecha de Ingreso: noviembre-2010
Mensajes: 50
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Include dinamico con #

hola de nuevo creo que ya prove a enviarlo con ajax pero no se si lo estoy haciendo del manera correcta. Asi?

Código PHP:
<SCRIPT LANGUAGE=JavaScript>
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 
enviarFormulario(urlformiddivrespuesta){
        var 
Formulario document.getElementById(formid);
        var 
longitudFormulario Formulario.elements.length;
        var 
cadenaFormulario "";
        var 
sepCampos;
        
sepCampos "";
        for (var 
i=0<= Formulario.elements.length-1;i++) {
            
cadenaFormulario += sepCampos+Formulario.elements[i].name+'='+encodeURI(Formulario.elements[i].value);
            
sepCampos="&";
    }
    
peticion=nuevoAjax();
    
peticion.open("POST"urltrue);
    
peticion.setRequestHeader('Content-Type''application/x-www-form-urlencoded; charset=ISO-8859-1');
    
peticion.send(cadenaFormulario);
    
peticion.onreadystatechange = function() {
          if (
peticion.readyState == && (peticion.status == 200 || window.location.href.indexOf ("http") == - 1)){
                
document.getElementById(divrespuesta).innerHTML peticion.responseText;
          }
    }
}
</script> 
  #20 (permalink)  
Antiguo 30/11/2010, 10:11
Avatar de tomymolina  
Fecha de Ingreso: noviembre-2010
Mensajes: 50
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Include dinamico con #

Como utilizo dos funciones ajax en dos documentos distintos pero uno incluido dentro del otro ?
  #21 (permalink)  
Antiguo 06/12/2010, 04:03
Avatar de tomymolina  
Fecha de Ingreso: noviembre-2010
Mensajes: 50
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Include dinamico con #

Me puedes ayudar que estoy mas perdido...

Yo tengo el include dinamico con ajax que tu me mostraste mas arriba y luego tengo otro documento incluido con ese sistema. En este dicho documento tengo un formulario normal que lo envio y recibo con ajax

Código:
<SCRIPT LANGUAGE=JavaScript>
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 enviarFormulario(url, formid, divrespuesta){
        var Formulario = document.getElementById(formid);
        var longitudFormulario = Formulario.elements.length;
        var cadenaFormulario = "";
        var sepCampos;
        sepCampos = "";
        for (var i=0; i <= Formulario.elements.length-1;i++) {
            cadenaFormulario += sepCampos+Formulario.elements[i].name+'='+encodeURI(Formulario.elements[i].value);
            sepCampos="&";
    }
    peticion=nuevoAjax();
    peticion.open("POST", url, true);
    peticion.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=ISO-8859-1');
    peticion.send(cadenaFormulario);
    peticion.onreadystatechange = function() {
          if (peticion.readyState == 4 && (peticion.status == 200 || window.location.href.indexOf ("http") == - 1)){
                document.getElementById(divrespuesta).innerHTML = peticion.responseText;
          }
    }
}
</script>
y su respectivo formulario.

Si yo abro el archivo.php donde tengo ese formulario y la funcion todo perfecto pero ahora si estoy dentro de #action=miformulario incluido con php y el sistema ajax pues no funciona al darle al boton no pasa nada.

Suponia que era porque al incluir todo un documento dentro de una div con su html respectivo por eso puse la funcion del formulario en el mismo lugar que la del request del include pero nada sigue sin funcionar.

Te agradeceria que me guiaras.

PD: He visto tu post en[URL="http://www.php-hispano.net/foros/Ajax/27840-enviar-formulario-con-ajax"] PHP Hispano [/URL] pero me ocurre lo mismo al incluirlo con PHP y AJAX en la div.
  #22 (permalink)  
Antiguo 06/12/2010, 05:24
 
Fecha de Ingreso: diciembre-2010
Ubicación: valencia
Mensajes: 203
Antigüedad: 13 años, 4 meses
Puntos: 11
Respuesta: Include dinamico con #

el js que tiene las funciones ajax lo pones en el header del index y podras usarlo en todos los documentos. ojo, en todos los que pongas con include en el cuerpo del index, si abres otro aparte necesitaras el js logicamente.
  #23 (permalink)  
Antiguo 06/12/2010, 07:40
Avatar de tomymolina  
Fecha de Ingreso: noviembre-2010
Mensajes: 50
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Include dinamico con #

Gracias por responder @enrique4480 claro lo pongo en el head del primer documento. Pero al incluir otro mediante el include dinamico con ajax y php no sucede nada en cambio al incluirlo directamente con php sin usar el ajax funciona de maravilla.

Etiquetas: dinamico, 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 13:31.