Foros del Web » Programando para Internet » PHP »

Peticion $.post sin devolver con echo

Estas en el tema de Peticion $.post sin devolver con echo en el foro de PHP en Foros del Web. Hola. Mirad, esto es algo creo que sencillo, pero no doy con ello. Mirad, tengo este código: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original $ ...
  #1 (permalink)  
Antiguo 11/03/2015, 01:58
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 14 años, 11 meses
Puntos: 6
Peticion $.post sin devolver con echo

Hola. Mirad, esto es algo creo que sencillo, pero no doy con ello. Mirad, tengo este código:

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.  
  3.   $("#btn").click( function() {
  4.    
  5.     var parametros = {'valor_elegido': "parametro"};
  6.    
  7.     $.post("prueba.php",parametros,function(res){
  8.       console.log(res);return;
  9.       $(".hola").html(res);
  10.     });
  11.    
  12.   });
  13.  
  14. });
Petición Post por Ajax que al hacer click en el boton, me devuelva el resultado de la petición en un .hola (en este caso es un div).

En la parte del php, si pongo esto
Código PHP:
Ver original
  1. if($_POST)
  2. {
  3.   echo "Devuelvo texto"; exit;
  4. }
Me devuelve el texto, pero si pongo esto

Código PHP:
Ver original
  1. if($_POST)
  2. {
  3.   return"Devuelvo texto"; exit;
  4. }

No me devuelve nada, es decir, con return no me devuelve nada.

Quería saber porque.

Gracias.
  #2 (permalink)  
Antiguo 11/03/2015, 02:38
 
Fecha de Ingreso: enero-2015
Mensajes: 205
Antigüedad: 9 años, 2 meses
Puntos: 18
Respuesta: Peticion $.post sin devolver con echo

ops, bueno yo no lo haría así, pero echo te muestra el texto por pantalla, return te devuelve un resultado, pero que te devuelva el valor, no significa que te lo muestre por pantalla.
  #3 (permalink)  
Antiguo 11/03/2015, 02:51
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 14 años, 11 meses
Puntos: 6
Respuesta: Peticion $.post sin devolver con echo

No, pero no has hecho bien las cosas, si implementas el ejemplo que he puesto, veras que el console.log no devuelve nada, es decir, no es que no me lo muestre por pantalla, es que la petición post con return no devuelve nada y con echo si devuelve.
  #4 (permalink)  
Antiguo 11/03/2015, 07:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Peticion $.post sin devolver con echo

Es obvio que con return no funcione, porque return sirve únicamente a nivel de PHP porque es una instrucción del lenguaje.

No es una instrucción HTTP que finalice la petición enviando el resultado al navegador, eso te lo has inventado tu.

¿De dónde sacaste tan brillante idea?

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 11/03/2015, 08:13
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 14 años, 11 meses
Puntos: 6
Respuesta: Peticion $.post sin devolver con echo

Me alegro que te guste la brillante idea de devolver algo con return

Basándonos en tu explicación sobre el return en php, ¿Un echo que sería?

En fin, el devolver algo con return en una petición ajax era una suposición por si podría funcionar, nada mas que eso.
  #6 (permalink)  
Antiguo 11/03/2015, 08:54
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: Peticion $.post sin devolver con echo

¿Y qué tal algo así?

Código PHP:
if($_POST)
{
  
$resultado "Aquí un texto y tal";

Y entonces...

Código:
<div class="hola">
<?php echo $resultado; ?>
</div>
  #7 (permalink)  
Antiguo 11/03/2015, 12:18
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Peticion $.post sin devolver con echo

Cita:
Iniciado por AitorLopez Ver Mensaje
Basándonos en tu explicación sobre el return en php, ¿Un echo que sería?
Un echo es una impresión en el buffer actual, es decir, no devuelve nada.

Con echo no puedes "capturar" nada como si fuera return, a menos que uses funciones para buffers.

Código PHP:
Ver original
  1. function foo() {
  2.   echo 'bar';
  3. }
  4.  
  5. // MAL
  6. echo 'BEFORE' . foo() . 'AFTER';
  7.  
  8. function baz() {
  9.   return 'buzz';
  10. }
  11.  
  12. // BIEN
  13. echo 'BEFORE' . baz() . 'AFTER';

La llamada a foo() imprime 'bar' mucho antes de comenzar a imprimir BEFORE, etc.

Porque echo es una instrucción, no devuelve nada.

Pero en la llamada a baz() funciona bien, imprimiendo 'BEFOREbuzzAFTER' porque efectivamente return devolvió el valor al finalizar la ejecución de baz().

¿Ahora ya entiendes la diferencia?

Cita:
Iniciado por AitorLopez Ver Mensaje
En fin, el devolver algo con return en una petición ajax era una suposición por si podría funcionar, nada mas que eso.
Pues sí, es una suposición tuya y nada más.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: devolver, echo, html, peticion, post
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 21:34.