AJAX - Como seleccionar elemento de una respuesta Ajax?

 
Vista:
sin imagen de perfil

Como seleccionar elemento de una respuesta Ajax?

Publicado por rizTaka (14 intervenciones) el 09/02/2016 17:05:23
Hola,

Tengo impelmentado un codigo que cada 5 segundos me carga una capa con unos resultados. tengo tambien un boton que lo que me hace es enviar una peticion ajax i lo que quiero es mientras espera la respuesta que me seleccione la capa que se actualiza con los resultados cada 5 segundos i me añada un gif animado de carga. el problema es que no se como seleccionar los elemntos de una respuesta ajax.

Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 90
Oro
Ha mantenido su posición en AJAX (en relación al último mes)
Gráfica de AJAX

Como seleccionar elemento de una respuesta Ajax?

Publicado por xve (222 intervenciones) el 09/02/2016 19:11:54
hola, depende de como lo hayas configurado, puedes recibir los datos en formato xml, json, script o html... te recomiendo utilizar el json encarecidamente.

Utilizas JQuery?
Como lo has configurado?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Como seleccionar elemento de una respuesta Ajax?

Publicado por rizTak (14 intervenciones) el 09/02/2016 19:33:55
Lo tengo como "json".

aqui est ael codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
function Actualitzar_Tasques(){
  $("#taba").load("actualitzar_tasques.php")
}
setInterval("Actualitzar_Tasques()",2000);
 
function StartCase(sesiousuari,sesiopassword){
var verificar=confirm("Realmente quieres iniciar el Flujo de Trabajo?");
 
 
if(verificar){
 
//$('#prova').html('<div><img src="Imatges/cargant_tasques.gif"></div>');
 
dades="sesiousuari="+sesiousuari +"&sesiopassword="+sesiopassword;
$.ajax({
                      async:true,
                      cache:false,
                      dataType:'json',
                      type: 'POST',
                      url: "../Projecte bonita/StartCase.php",
                      data: dades,
                      success:  function(dadesjson){
 
                       if(dadesjson.length==0){
					   alert("No hay tareas disponibles");
					   }
					   else{
 
						   $('#prova').css('display','none');
					       var AIID_rebuts=[];
						   for(var i=0;i<dadesjson.length;i++){
							 AIID_rebuts.push(dadesjson[i].id);
							   }
							   var marc = $("#central");
							   var max= Math.max.apply(null, AIID_rebuts);
							   var url='http://localhost:8080/bonita/portal/homepage#?id='+max+'&_p=performTask&_pf=1';
							   marc.attr('src', url);
							   marc.reload();
							   //$('#prova').html(dadesjson);
					         }
                      },
                      beforeSend:function(){},
                      error:function(objXMLHttpRequest){alert("error envio");}
                    })
 
			}
.
.
.
 
 
<li><?php echo"<a href='javascript:StartCase($sesiousuari,$sesiopassword);'><span>Documentos</span></a>";?></li>
.
.
.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Vainas
Val: 47
Ha mantenido su posición en AJAX (en relación al último mes)
Gráfica de AJAX

Como seleccionar elemento de una respuesta Ajax?

Publicado por Vainas (71 intervenciones) el 09/02/2016 19:58:26
Buenas:

Añado a lo que dice xve que si tu response es del tipo html tiene que hacer un parser a un objeto jQuery:

1
2
3
success:  function(dadesjson){
var $html = $(dadesjson );
...

Si es un json pues pasara a ser un objeto javascript. Pero un objeto javascript no tiene length (eso para los arrays), asi que no puedes hacer:

1
dadesjson.length

Por lo menos hasta donde yo se.

Espero que sirva.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Como seleccionar elemento de una respuesta Ajax?

Publicado por rizTaka (14 intervenciones) el 09/02/2016 20:15:52
Mi pregunta, a grandes razgos es : como podria seleccionar un elemento que esta dentro de una respuesta ajax.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Vainas
Val: 47
Ha mantenido su posición en AJAX (en relación al último mes)
Gráfica de AJAX

Como seleccionar elemento de una respuesta Ajax?

Publicado por Vainas (71 intervenciones) el 09/02/2016 20:42:50
Buenas:

La respuesta es depende que desvuelve el servidor:

1. El servidor desvuelve un html:

has fijado dataType:'html' y tienes la seguridad que el servidor te desvuelve una buena estuctura html:

1
2
3
4
5
6
<div>
    <ol>
        <li>
        </li>
    </ol>
</div>

Pues solo tienes que hacer:

1
2
success:  function(data){
var $html = $(data);

Con eso $html tiene la estuctura html que ha desvuelto el servidor lista para usarla con funciones jQuery.

2. El servidor desvuelve un json:

has fijado dataType:'json' y tienes la seguridad que el servidor te desvuelve una buena estuctura json:

1
2
3
4
5
6
7
{
	"dato1": [1, 2, 3],
	"dato2": {
		"datoX": 2,
		"datoY": 3
	}
}

Pues solo tienes que hacer:

1
2
3
4
success:  function(data){
data.dato1
data.dato2.datoX
...

Cuando le dices que se desvuelve un json jQuery lo transforma en un objeto javascript.

Espero que se entienda.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Como seleccionar elemento de una respuesta Ajax?

Publicado por rizTak (14 intervenciones) el 09/02/2016 21:03:42
Muchas gracias por tu tiempo.

he comprendido lo que me has dicho, voy a intentar ponerlo en practica, pero me surge una duda y es la siguiente:

Lo que intentare hacer es el siguiente:

1
2
3
4
success:  function(resultado){
var $html = $(resultado);
 
var obtenerValor=$html.find('input[type=hidden]').val();

aqui obtendre el valor del campo input y que es el nombre de la capa donde se van a alojar los <li>, pero como obtengo los <li> correspondientes a esta capa?
poque no quiero alojar todos los <li>, sino que solo aquellos <li> que su "$fila['test_name']", aya devuelto sus correspondientes, mediante la consulta mysql que se hizo :

- $fila["organization"]
- $fila["evaluacion"]



no se si me he explicado? cualquier cosa pregunten!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Vainas
Val: 47
Ha mantenido su posición en AJAX (en relación al último mes)
Gráfica de AJAX

Como seleccionar elemento de una respuesta Ajax?

Publicado por Vainas (71 intervenciones) el 09/02/2016 23:16:50
Dime que es para ti "var obtenerValor" que valor guarda esa variable? es un id? o una class? un atributo "data-" quizas? o es un texto dentro de una etiqueta:

<div>valor</div>


Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Como seleccionar elemento de una respuesta Ajax?

Publicado por RIZtAK (14 intervenciones) el 11/02/2016 16:43:49
Hola y gracias,

La variable "obtenerValor", recogera el valor del elemento "input", lo que pasa es que en el archivo php que recoge por post los datos que se envian a traves de ajax, el elemento input esta dentro de un bucle por lo que cada vez el atributo "value" obtiene un valor diferente a traves del resultado de una consulta mysql($fila["organization"].$fila["evaluacion"]). Lo que esta ocuriendo es que simepre me obtengo l'ultimo valor seleccionado.


saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar