Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Traer datos desde ajax

Estas en el tema de Traer datos desde ajax en el foro de Jquery en Foros del Web. Hola a todos, le comento que tengo un script que trae desde ajax un texto, pero lo que quiero hacer es que me traiga un ...
  #1 (permalink)  
Antiguo 04/01/2018, 21:13
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 501
Antigüedad: 8 años, 3 meses
Puntos: 11
Pregunta Traer datos desde ajax

Hola a todos, le comento que tengo un script que trae desde ajax un texto, pero lo que quiero hacer es que me traiga un especifico dependiendo del id.

Código HTML:
<script>
$(document).ready(function(){
	$("#enlaceajax").click(function(evento){
		evento.preventDefault();
		$("#cargando").css("display", "inline");
		$("#destino").load("pagina.php", function(){
			$("#cargando").css("display", "none");
		});
	});
})
</script> 
pagina.php

Código PHP:
$iduno 1;
$iddos 2;

echo 
$iduno;
echo 
$iddos
Código HTML:
<a href="<?=$id;?>" id="enlaceajax">Traer dato</a>
<div id="destino"></div> 
Si hago clic en me trao todo y se supone que voy a hacer una lista y quiero que me traiga segun lo que elija.

Espero me ayuden y gracias!
__________________
Zreep
  #2 (permalink)  
Antiguo 04/01/2018, 23:34
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.550
Antigüedad: 15 años, 9 meses
Puntos: 1264
Respuesta: Traer datos desde ajax

Hola:

Como no uso librerías con javascript/Ajax, no conozco el código qque usas, pero básicamente debes pasar ese id en la url de la petición Ajax...
Parece que tu petición no tiene ese id...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 05/01/2018, 02:54
Avatar de fbedia  
Fecha de Ingreso: julio-2010
Mensajes: 149
Antigüedad: 7 años, 6 meses
Puntos: 8
Respuesta: Traer datos desde ajax

Si no he entendido mal tu codigo, todos los enlaces tienen el mismo ID.

yo lo que haria y creo que es mas facil, seria un evento onClick en cada enlace que llame a una funcion y le pase el id, por ejemplo:

Código PHP:
Ver original
  1. onclick="tuFuncion(<?=$id;?>)"

y en javascript algo asi..

Código Javascript:
Ver original
  1. function tuFuncion(id){
  2. console.log("El id recibido es: "+id);
  3. }
__________________
Follow me on twitter @franbedia
  #4 (permalink)  
Antiguo 05/01/2018, 06:31
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 501
Antigüedad: 8 años, 3 meses
Puntos: 11
Respuesta: Traer datos desde ajax

Gracias chicos... cuando llegue lo pruebo y les comento como me fue...
__________________
Zreep
  #5 (permalink)  
Antiguo 05/01/2018, 21:02
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 501
Antigüedad: 8 años, 3 meses
Puntos: 11
Respuesta: Traer datos desde ajax

Gracias nuevamente, pero no logro traer los datos... estoy probando con get y tampoco me da resultado...

en el index tengo esto:
Código PHP:
<?php

$ide 
1;

?>

<a href="?id=<?=$ide;?>" id="enlaceajax">
<div class="">
Haz clic!
</div>
</a>

<a href="?id=<?=$ide;?>" id="enlaceajax">
<div class="">
Haz clic!
</div>
</a>
se supone que habra un while y me va a traer vario ID, lo cual AJAX me trae pagina.php con esto:

Código PHP:

$id 
$_GET['id'];

if (
$id == 1) {
echo 
1;
}elseif(
$id 2) {
echo 
2;
}else {
    echo 
'nada'
se supone que despues hago una consulta a la base de datos que me traiga la lista de notas.


Para que se entienda, lo que quiere el cliente es tener un tipo inbox pero como icloud, que se muestren los mensajes a la derecha sin abrir una pagina nueva.

Espero me ayuden
__________________
Zreep
  #6 (permalink)  
Antiguo 06/01/2018, 09:33
Avatar de Alexis88
Moderador
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.274
Antigüedad: 6 años, 2 meses
Puntos: 878
Respuesta: Traer datos desde ajax

Si en el enlace solo deseas establecer el valor y no la ruta entera, sería mejor que utilices un atributo personalizado. La otra forma es que, en el atributo href, indiques la ruta completa, como: pagina.php?id=2. Además, es importante que sepas que los id de los elementos HTML, como el id="enlaceajax", no deben repetirse. Se trata de un valor único en todo el documento. Esto te traerá problemas en la llamada a la función anónima que se ejecuta con el método .click() de jQuery pues, por ejemplo, cuando pulses el enlace número quince, siempre se tomará el valor del primero de todos. En su lugar, mejor utilizar el atributo class que no es otra cosa que una clase, misma que sí puede repetirse.

El resultado sería el siguiente:

Código HTML:
Ver original
  1. class="enlaceajax"

Código Javascript:
Ver original
  1. $(".enlaceajax").click(function(){
  2.     //...
  3. });

Por último, en la petición con el método .load(), a la dirección hacia la cual realizas la consulta debes adherirle el valor a enviar. Si en el atributo href colocas la ruta completa, como puse de ejemplo más arriba, solo tendrías que cambiar el pagina.php por $(this).prop("href"). Habiendo hecho estos cambios, podrás recibir el valor en el archivo PHP y procesarlo mediante las condiciones que muestras.

__________________
«Laissez faire et laissez passer, le monde va de lui même»
  #7 (permalink)  
Antiguo 06/01/2018, 19:03
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 501
Antigüedad: 8 años, 3 meses
Puntos: 11
Respuesta: Traer datos desde ajax

Gracias Alexis88, la verdad hice los cambio y funciona en modo normal, cuando asigno otras ID no me da resultado. No me quedo claro en donde cambiar $(this).prop("href"), la verdad no manejo ajax pero me doy maña, osea, le pongo voluntad, je.

en pagina.php cambie la variable

Código PHP:
$ide $_GET['ide'];

if (
$ide == 1) {
echo 
'este es el numero 1';
}elseif(
$ide 2) {
echo 
'este es el numero 2';
}else {
    echo 
'nada'
este es el index

Código HTML:
$(document).ready(function(){
	$(".enlaceajax").click(function(evento){
		evento.preventDefault();
		//$("#cargando").css("display", "inline");
		$(".destino").load("pagina.php", function(id){
			//$("#cargando").css("display", "none");
		});
	});
})


<a href="pagina.php?ide=1" class="enlaceajax">
<div class="">
Haz clic 1
</div>
</a>

<a href="pagina.php?ide=2" class="enlaceajax">
<div class="">
Haz clic 2
</div>
</a>


<div class="destino"></div> 
cambie los id, por class, pero sigo sin tener resultado en destino
__________________
Zreep
  #8 (permalink)  
Antiguo 06/01/2018, 20:19
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 9.762
Antigüedad: 9 años, 5 meses
Puntos: 2117
Respuesta: Traer datos desde ajax

No sé si iniciaste el tema en PHP o en otro lado, pero parece que pertenece a jQuery y explico brevemente:

En los enlaces tienes una URL donde especificas ide, sin embargo, y sin saber mucho de javascript o jquery, me parece que al cambiar el comportamiento del enlace (preventDefault) también cambias la URL que debería cargarse; supongo que hay una forma de extraer la URL del enlace actual y aplicarlo en $(".destino").load("pagina.php", ...);
__________________
- León, Guanajuato
- GV-Foto
  #9 (permalink)  
Antiguo 06/01/2018, 21:39
Avatar de Alexis88
Moderador
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.274
Antigüedad: 6 años, 2 meses
Puntos: 878
Respuesta: Traer datos desde ajax

Cita:
Iniciado por zreep Ver Mensaje
[...] No me quedo claro en donde cambiar $(this).prop("href") [...]
Cita:
Iniciado por Alexis88 Ver Mensaje
[...] Por último, en la petición con el método .load(), a la dirección hacia la cual realizas la consulta debes adherirle el valor a enviar. Si en el atributo href colocas la ruta completa, como puse de ejemplo más arriba, solo tendrías que cambiar el pagina.php por $(this).prop("href"). [...]
En otras palabras, debe quedar así:

Código Javascript:
Ver original
  1. $(".destino").load($(this).prop("href"), function(id){
  2.     //...
  3. });

Para lo cual los enlaces deben tener como valor del atributo href el nombre del archivo PHP y la cadena de consulta, es decir, como los has mostrado en tu última respuesta.

Lo que ahora te falta es mostrar la respuesta de la petición en el <div id="destino"> (como parece ser el único elemento HTML con dicho id, no es necesario cambiarlo por el atributo class). Nada más necesitas tomarlo y utilizar el método .text() para asignarle la respuesta de la petición como contenido.

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.     $(".enlaceajax").click(function(evento){
  3.         evento.preventDefault();
  4.         $("#destino").load($(this).prop("href"), function(id){
  5.             $(this).text(id);
  6.         });
  7.     });
  8. });

Por cierto, en la segunda condición del archivo PHP, te falta un segundo signo de igualdad y la última llave que cierra la condición.

__________________
«Laissez faire et laissez passer, le monde va de lui même»

Última edición por Alexis88; 06/01/2018 a las 21:59 Razón: ID por CLASS
  #10 (permalink)  
Antiguo 06/01/2018, 21:50
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 501
Antigüedad: 8 años, 3 meses
Puntos: 11
Respuesta: Traer datos desde ajax

Hola Triby y no hay problema, en realidad el tema se basa tanto en php como en ajax. Busque info y no pude hacer nada, la verdad estoy obnubilado. Cambien el ajax para poder tomar los datos desde php pero nada funciona.
Llegue a un punto en que ya no se donde tengo que poner todo. Voy a empezar desde 0; mi idea es tenes un listado que mensajes, cada listado tiene un id (eso es mas que claro), y el cliente quiere ver esos mensajes en el lado derecho, algo asi como icloud. Entonces se me ocurrio usar ajax. Son simples mensajes, no busco hacer algo muy compicado ya que el cliente quiero eso, solo mensajes internos.

asi arranque
Código HTML:
<script type="text/javascript">
$(document).ready(function(){
    $('.enlaceajax').click(function(){
        $.ajax({
            type: 'GET',
            url: 'pagina-lenta.php',
            dataType: 'html',
            success: function (data) {
                $('.destino').html(data);
            }
        });
    });
});
</script>


<a href="#" class="enlaceajax">
<div class="">
Haz clic 1
</div>
</a>


<div class="destino"></div> 
Código PHP:
echo 'Texto desde PHP'

Bien, pero donde esta el enlace, voy a poner un while con los ID de cada mensaje, algo asi como: <?=fila['id'];?> y en pagina.php hacer un select desde $_GET... ya probe eso... pero nada funciona..

Gracias por tu tiempo
__________________
Zreep
  #11 (permalink)  
Antiguo 07/01/2018, 07:47
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 501
Antigüedad: 8 años, 3 meses
Puntos: 11
Respuesta: Traer datos desde ajax

Gracias a todos... no se que hice y cambie, pero funciona....je... puedo también pasar los id por GET a travez de ajax y bueno... me sirvió para aprender.

Gracias nuevamente a todos
__________________
Zreep



La zona horaria es GMT -6. Ahora son las 11:01.