Foros del Web » Programando para Internet » Javascript » Frameworks JS »

case con ajax

Estas en el tema de case con ajax en el foro de Frameworks JS en Foros del Web. como hacer el paginado que hace facebook que cada vez que le da sobre el boton: previous o next te pone al final de la ...
  #1 (permalink)  
Antiguo 17/01/2010, 15:15
 
Fecha de Ingreso: julio-2009
Mensajes: 16
Antigüedad: 14 años, 9 meses
Puntos: 0
case con ajax

como hacer el paginado que hace facebook que cada vez que le da sobre el boton: previous o next te pone al final de la url algo como esto:

#/photo.php?pid=31002059&id=1181977464&fbid=13321481 02068

si se dan cuenta el comienza con un # como si estuviera llamando a un div pero en realidad lo que hace es cargar la siuiente foto o la anterior dependiendo de lo que clickes......


Este comportamiento tambien se puede ver en twitter.. cada vez que quieres hacer una busqueda en la pagina princiapal tuya luego de haber logueado a la url te coloca al final algo como esto:

#search?q=Dios...

Lo que en realidad me gusta de esto es que no tienes que recargar la pagina para irte al otro case que uno tiene en la pagina php.. en este caso lo que quiero hacer es algo como esto:

inbox.php?mg=cp#inbox.php?mg=cp

para que no recargue la pagina y paresca que uso ajax.. o en su efecto puede que sea ajax pero no lo se usar... les agradesco su ayuda..
  #2 (permalink)  
Antiguo 17/01/2010, 15:23
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: case con ajax

bueno, es claro que es Ajax... y si no lo sabes usar, por favor... investiga al respecto...

no esperes a que te lleven de la mano, bien puedes empezar tu mismo... (:
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 17/01/2010, 15:29
 
Fecha de Ingreso: julio-2009
Mensajes: 16
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: case con ajax

peter es este mismo caso como el de aca:

/#post3243527

fijate arriba... y te puedo decir que he investigado y tengo conocmientos en ajax, se puede decir que mas o menos bastante pero esto no lo he podido ahcer, y si pido ayuda es porque en realidad la necesito
  #4 (permalink)  
Antiguo 17/01/2010, 15:31
 
Fecha de Ingreso: julio-2009
Mensajes: 16
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: case con ajax

cuando me refiero a que:
"o en su efecto puede que sea ajax pero no lo se usar... les agradesco su ayuda.."

me refiero a esta tema de colocar: #search?q=text
y que esti cargue a su ves cargue una funcion en ajax
  #5 (permalink)  
Antiguo 17/01/2010, 15:45
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: case con ajax

es mas fácil si lo visualizas así...

#foo.php?q=v
Código:
var str = (document.location.href).toString().split('#');
var script = str[1]; // foo.php?q=v

$.ajax({
  url: script,
  method: 'get'
});
la idea, es obtener el trozo después de # y usar dicha información para implementar Ajax...

todo es cuestión de ingenio y visión, lo siento si no puedes visualizarlo así... (:
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 18/01/2010, 14:01
 
Fecha de Ingreso: julio-2009
Mensajes: 16
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: case con ajax

Gracias lo probare..!
  #7 (permalink)  
Antiguo 18/01/2010, 16:47
 
Fecha de Ingreso: julio-2009
Mensajes: 16
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: case con ajax

querido amigo lo vi y lo entendi pero no imagino como terminar el codigo ya que lo he intentado pero de ninguna forma me da resultado...me gustaria implementar esto con una pagina php que utiliza cases deesta manera podria visualizar los contenido de los distintos cases sin la necesidad de recargar la pagina... si eres tan amable te pediria que me ayudaras a terminar este codigo...

Realmente estaria muy agradecido contigo!!!
  #8 (permalink)  
Antiguo 18/01/2010, 16:52
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: case con ajax

mira, el problema no esta en el Ajax... obviamente está en como implementaste tu script...

pero bueno, si esperas a que adivinemos el código para ayudarte... ¡no creo que te sientas muy agradecido después!!

pero vamos, es sencillo... siguiendo el ejemplo anterior

foo.php?q=v
Código PHP:
switch ($_GET['q'])
{
  case 
'v': echo 'OK'; break;
  default: break;

eso es todo... claro, que para implementar Ajax debes saber utilizarlo... y ya sabes... ;)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 18/01/2010, 19:54
 
Fecha de Ingreso: julio-2009
Mensajes: 16
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: case con ajax

bueno hermano.. tenemos esto

Código:
<script>
var str = (document.location.href).toString().split('#');
var script = str[1]; // inbox.php?mg=st

$.ajax({
  url: script,
  method: 'get'
});
</script>
Código PHP:
Ver original
  1. <?php
  2. switch ($_GET['mg'])
  3. {
  4.   case 'st':
  5.   echo 'OK';
  6.   break;
  7.  
  8.   default:
  9.   echo 'DEFAULT';
  10.   break;
  11. }
  12. ?>

bueno mi pregunta ahora es que colocarle al link en href ¿?
<a href="#inbox.php?mg=st">sent</a>
asi? o como?
La otra pregunta es si le deberiamos colocar algo mas al codigo ajax.. porque como te dije lo heintentado de varias maneras y no me resulta..


Y bueno de lo que entiendo.. deberiamos como hacer que el contenido se vuelque en un div..

Gracias por tu ayuda!!
  #10 (permalink)  
Antiguo 18/01/2010, 20:21
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: case con ajax

entonces necesitas familiarizarte con Ajax, la sintaxis que yo uso es la de jQuery...

deberías usarlo, es un framework para JS ... que tiene métodos sencillos para Ajax, así como inyectar el resultado en un <div/>, etc...

otra cosa importante, según cada quien su propia técnica, pero... el enlace no lo debes colocar manualmente, deberías hacerlo igualmente con Javascript

Código HTML:
<a href="foo.php?q=v" rel="ajax">enlace</a> 
y con jQuery consigues que estos enlaces, se pasen vía Ajax...
Código javascript:
Ver original
  1. $(function(){
  2.   $('a[rel=ajax]').bind('click', function(){
  3.     document.location.href='#'+this.href;
  4.     // ejecutamos el ajax...
  5.     return false;
  6.   });
  7. });

o al menos así es la idea...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 18/01/2010, 20:29
 
Fecha de Ingreso: julio-2009
Mensajes: 16
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: case con ajax

gracias m,i hermano.. eres bueno...
ya conosco jquery.. lo voy a tratar de implementar de nuevo...
Con esto que me acabas de dar me has dado mas luz..

Buena por esta!!!
  #12 (permalink)  
Antiguo 18/01/2010, 20:48
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: case con ajax

jeje... creo que para las próximas, asumiré que ya se tiene un dominio básico de jQuery en estos casos... (:
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #13 (permalink)  
Antiguo 18/01/2010, 23:21
 
Fecha de Ingreso: julio-2009
Mensajes: 16
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: case con ajax

hermano tengo esto:

Código PHP:
<script type="text/javascript" src="js/jquery-1.3.2.js"></script>
<script type="text/javascript">
$(function(){
* $('a[rel=ajax]').bind('click', function(){
* * document.location.href='#'+this.href;
* * // ejecutamos el ajax...

    var str = (document.location.href).toString().split('#');
    var script = str[1]; // inbox.php?mg=st

    $.ajax({
      url: script,
      method: 'get'
    });


* * return false;
* });
});

</script>

<body>
<a href="ajaxcase.php?q=v" rel="ajax">enlace</a>


<?php
switch ($_GET['q']) {
    case 
'v':
        echo 
"works";
        break;

    default:
       echo 
"do it";
}
?>
</body>
se que le falta la parte del div para que me bote el resultado en un div pero es que ni si quiera me genera el signo numeral en la url sino que funciona como cualquier link como si no tuviera una funcion ajax que la estuviera vigilando...

Disculpame si de pronto te estoy preguntando mucho... pero no imaginas lo agradecido que estoy... en realidad necesito esto...
  #14 (permalink)  
Antiguo 18/01/2010, 23:48
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: case con ajax

dos detalles...

¿estas seguro que esta bien tu código??
- porque yo veo errores sintácticos en la parte de Javascript...

el script que procesa la petición GET debe ser un script independiente, no el mismo...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #15 (permalink)  
Antiguo 19/01/2010, 10:00
 
Fecha de Ingreso: julio-2009
Mensajes: 16
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: case con ajax

Cita:
Iniciado por pateketrueke Ver Mensaje
dos detalles...

¿estas seguro que esta bien tu código??
- porque yo veo errores sintácticos en la parte de Javascript...

el script que procesa la petición GET debe ser un script independiente, no el mismo...
entonces cuando tu dices> ejecutemos el ajax... a que te refieres... por favor necesito tu ayuda

Edited: y es que aun separandolos.. me refiero es que cuando le doy click al enlace ni si quiera me le antepone el signo numeral, es como si no estuviera haciendo relacion a nada..
Conosco de AJax pero cno tanto como de PHP, es por esto que necesito tu ayuda amigo, tu eres bueno.. por favor dame una manno, no quiero divagar en la internet donde no he podido conseguir esto...

GRACIAS!

Última edición por manzabud; 19/01/2010 a las 10:10
  #16 (permalink)  
Antiguo 19/01/2010, 10:31
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Tema movido desde PHP a AJAX
  #17 (permalink)  
Antiguo 19/01/2010, 12:36
 
Fecha de Ingreso: julio-2009
Mensajes: 16
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: case con ajax

Es mas mira probando yo podriamos hacer algo asi:

Código HTML:
Ver original
  1. <script type="text/javascript" src="js/jquery-1.3.2.js"></script>
  2. <script type="text/javascript">
  3. $(function(){
  4. * $('a[rel=ajax]').bind('click', function(){
  5. * * document.location.href='#'+this.href;
  6. * * // ejecutamos el ajax...
  7.  
  8. * * return false;
  9. * });
  10. });
  11.  
  12.  
  13. <script type="text/javascript">
  14.     var str = (document.location.href).toString().split('#');
  15.     var script = str[1]; // inbox.php?mg=st
  16.  
  17.    $.ajax({
  18.             url: script,   
  19.             type: "GET",       
  20.             data: data,    
  21.             cache: false,
  22.             success: function (html) { 
  23.                 $('.loading').hide();              
  24.                 $('#content').html(html);
  25.                 $('#body').fadeIn('slow');     
  26.        
  27.             }      
  28.         });
  29.  
  30. <a href="ajaxcase.php?q=v" rel="ajax">enlace</a>
  31.  
  32.  
  33. <?php
  34. switch ($_GET['q']) {
  35.    case 'v':
  36.        echo "works";
  37.        break;
  38.  
  39.    default:
  40.       echo "do it";
  41. }
  42. ?>
  43. </body>


pero corrigeme en lo qu eeste mal porfavor.. he estado mirando varias paginas y praticamente hacen lo que yo quiero pero no es tal cual lo quiero.. por ejemplo ellos trabajan directamente con el signo numeral en el link pero yo quiero algo mas profesional y con variables get asi como esto:

Código HTML:
Ver original
  1. <a href="ajaxcase.php?q=v" rel="ajax">enlace</a>

y NO asi:

Código HTML:
Ver original
  1. <a href="#page1" rel="ajax">enlace</a>
  #18 (permalink)  
Antiguo 21/01/2011, 17:03
 
Fecha de Ingreso: enero-2011
Mensajes: 1
Antigüedad: 13 años, 3 meses
Puntos: 0
Busqueda Respuesta: case con ajax

ola :D soy nuevo aqui.. estube leyendo de este tema.. y bueno aprendi cosas que no sabia ..
en cuanto a tu caso.. mira todo estaba bien.. solo k hay un pequeño detalle en el evento click .. cuando haces click en el enlace.. este tendra k cargar el ajax..

pero por ser una peticion ajax esta se ejecuta de manera asincrona.. asi que primero tienes k pevenir el evento por defecto del link con preventDefault()
de jquery antes que ejecutes tu llamada ajax y no despues.. de lo contrario no servira
Código HTML:
Ver original
  1. <script type="text/javascript" src="js/jquery-1.3.2.js"></script>
  2. <script type="text/javascript">
  3. $(function(){
  4.  $('a[rel=ajax]').bind('click', function(event){
  5.      document.location.href='#'+this.href;
  6.     //prevenimos el  evento por defecto
  7.     event.preventDefault();
  8.     // ejecutamos el ajax...
  9.     cargarPagina();
  10.   });
  11. });
  12.  
  13.  
  14. <script type="text/javascript">
  15. function cargarPagina(){
  16.     var str = (document.location.href).toString().split('#');
  17.     var script = str[1]; // inbox.php?mg=st
  18.  
  19.    $.ajax({
  20.             url: script,    
  21.             type: "GET",        
  22.             data: data,    
  23.             cache: false,
  24.             success: function (html) {  
  25.                 $('.loading').hide();              
  26.                 $('#content').html(html);
  27.                 $('#body').fadeIn('slow');      
  28.        
  29.             }      
  30.         });
  31. }
  32.  
  33.  
  34. <a href="ajaxcase.php?q=v" rel="ajax">enlace</a>
  35.  
  36.  
  37. <?php
  38. switch ($_GET['q']) {
  39.    case 'v':
  40.        echo "works";
  41.        break;
  42.  
  43.    default:
  44.       echo "do it";
  45. }
  46. ?>
  47. </body>

Saludos ... :D

ATTE. Gerson Pardo

Etiquetas: ajax, case
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 17:18.