Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Problema con Ajax. Recogida de valor con xhttp.responseText

Estas en el tema de Problema con Ajax. Recogida de valor con xhttp.responseText en el foro de Jquery en Foros del Web. Hola a todos: Os cuento mi problema. Tengo dos archivos. El primero es un html (index.html) con un formulario que contiene un input, entre otros. ...
  #1 (permalink)  
Antiguo 12/02/2016, 07:07
 
Fecha de Ingreso: septiembre-2003
Mensajes: 5
Antigüedad: 20 años, 7 meses
Puntos: 0
Problema con Ajax. Recogida de valor con xhttp.responseText

Hola a todos: Os cuento mi problema. Tengo dos archivos.
El primero es un html (index.html) con un formulario que contiene un input, entre otros. Cada vez que escribo un carácter, se ejecuta una función que llama al archivo probarAjax.php, y que a su vez devuelve una respuesta al primero mediante una instrucción 'echo'. Tan simple (o tan complejo) como eso.
Aunque creo que el código está bien, el problema es que el valor devuelto por el archivo php siempre está vacío o no consigo recogerlo (lo hago con xhttp.responseText).
Gracias por vuestra ayuda.

-----Archivo index.html

Código HTML:
<HTML>

<HEAD>

<TITLE>Un Titulo </TITLE>
    <!-- Fichero de jQuery -->
    <script type="text/javascript" src="jquery-1.11.2.min.js"></script>
	<script type="text/javascript">
		function find(str) {
			var request = new XMLHttpRequest();
			str=$('input:text[name=usuario]').val();
			var xhttp = new XMLHttpRequest (); 
			xhttp.open ("GET", "probarAjax.php", true); 
			xhttp.send (false);
			document.getElementById("livesearch").innerHTML = xhttp.responseText;
        }
	</script>	
</HEAD>

<BODY>


<H1>Otro titulo, esta vez mas largo. </H1>
    <form id="frmAnadirUsuario">
        <div>
            <!-- Relacionamos el 'label' con el campo mediante el atributo 'for' que le relaciona con el 'id' correspondiente -->
            <label for="usuario">Usuario (nif):</label>
            <!-- Atributo 'required' para que el campo sea obligatorio rellenarlo antes de enviar el formulario -->
            <input type="text" name="usuario" id="usuario" onkeyup="find(this.value)" autofocus required>
            <div id="livesearch">-</div>
        </div>
	</form>


	
</BODY>

</HTML> 
--Archivo probarAjax.php

Código PHP:
<?php 

$response
="probando ajaX";
echo 
$response;

?>

Última edición por moncag; 12/02/2016 a las 07:25
  #2 (permalink)  
Antiguo 12/02/2016, 09:30
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Problema con Ajax. Recogida de valor con xhttp.responseText

Al ser una petición asíncrona, la respuesta puede ser capturada una vez que la petición se complete, para lo cual debes de utilizar alguno de los eventos del objeto XMLHttpRequest.

Código Javascript:
Ver original
  1. xhttp.addEventListener("load", function(){
  2.     if (this.status == 200){
  3.         document.getElementById("livesearch").innerHTML = this.responseText;
  4.     }
  5. }, false);

Cuando la petición se complete y el código de estado de la misma sea igual a 200 (petición completada con éxito), procede a tomar la respuesta.

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 12/02/2016, 11:12
 
Fecha de Ingreso: septiembre-2003
Mensajes: 5
Antigüedad: 20 años, 7 meses
Puntos: 0
Respuesta: Problema con Ajax. Recogida de valor con xhttp.responseText

Problema solucionado.
Muchas gracias Alexis88.

Etiquetas: ajax, recogida, valor
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 04:05.