Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Leguim en 21 Agosto 2019, 20:55 pm



Título: [Resuelto] [Pregunta]: ¿Como puedo pasar de html(); a eval();?
Publicado por: Leguim en 21 Agosto 2019, 20:55 pm
Buenos días a todos!

Siempre que use ajax para devolver los resultados usaba .html

Código
  1. .done(function(results)
  2. {
  3. $('#box_resultados).html(results);
  4. })
  5.  

En un tema pasado me dijeron que usar .html no es lo ideal y era preferible usar .eval();
lo que no comprendo del todo sería como hacerlo ya que reemplazar .html por .eval(); no me devuelve nada.

Código
  1. .done(function(results)
  2. {
  3. $('#box_resultados).eval(results);
  4. })
  5.  

Lo que se hace en el fichero ajax es usar una variable temporal ($tmp), lo que va acumulando información que luego mostrará.

Fichero ajax
Código
  1. $tmp = '';
  2. $tmp.= '<div style="background: yellow;">
  3.                   <h1>Ejecutado</h1>
  4.            </div>';
  5. echo $tmp;
  6.  

Como sería para poder devolver los resultados con eval();

Muchas gracias.


Título: Re: [Pregunta]: ¿Como puedo pasar de html(); a eval();?
Publicado por: engel lex en 21 Agosto 2019, 21:08 pm
no tiene mucho sentido usar eval ahi, podrías poner el link del tema para ver el contexto


Título: Re: [Pregunta]: ¿Como puedo pasar de html(); a eval();?
Publicado por: Leguim en 21 Agosto 2019, 21:38 pm
no tiene mucho sentido usar eval ahi, podrías poner el link del tema para ver el contexto

Es este
https://foro.elhacker.net/desarrollo_web/pregunta_iquestcomo_podria_ejecutar_solamente_un_script_en_un_archivo_ajax-t498627.0.html


Título: Re: [Pregunta]: ¿Como puedo pasar de html(); a eval();?
Publicado por: engel lex en 21 Agosto 2019, 21:53 pm
lo comprendiste mal... no era que usaras eval todo el tiempo con ajax, es que si vas a pasar un codigo javascript, en lugar de inyectar todo el script al html con etiquetas y demas, solo uses eval para ejecutar el codigo... me explico

en lugar de
Código
  1. function Sumar(value_a, value_b)
  2. {
  3.     var resultado_suma = valor_a + valor_b;
  4.     $.ajax({
  5.          url: 'archivo_ajax.php',
  6.  type: 'POST',
  7.  dataType: 'html',
  8.  data: {resultado_suma},
  9.     })
  10.  
  11.     .done(function(results)
  12.     {
  13.  $('body').append(results);
  14.     })
  15. }
  16.  

donde el ajax es

Código
  1. <script type="text/javascript>
  2. alert('<?php echo($_POST['resultado_suma']); ?>');

hagas

Código
  1. function Sumar(value_a, value_b)
  2. {
  3.     var resultado_suma = valor_a + valor_b;
  4.     $.ajax({
  5.          url: 'archivo_ajax.php',
  6.  type: 'POST',
  7.  dataType: 'html',
  8.  data: {resultado_suma},
  9.     })
  10.  
  11.     .done(function(results)
  12.     {
  13.  eval(results);
  14.     })
  15. }
  16.  

y el ajax sea

Código
  1. alert('<?php echo($_POST['resultado_suma']); ?>');


es decir no usar HTML si no es necesario

en este nuevo caso no es un javascript el resultado, asi que la via logica es insertarlo al html por vias normales (.append, .prepend, .html, o cualquier que sea necesario para tu caso)


Título: Re: [Pregunta]: ¿Como puedo pasar de html(); a eval();?
Publicado por: Leguim en 21 Agosto 2019, 22:03 pm
Ahora entendí, te agradezco mucho!  ;-)