[Resuelto] [Pregunta]: ¿Como puedo pasar de html(); a eval();?

Iniciado por Leguim, 21 Agosto 2019, 20:55 PM

0 Miembros y 1 Visitante están viendo este tema.

Leguim

Buenos días a todos!

Siempre que use ajax para devolver los resultados usaba .html

Código (javascript) [Seleccionar]

.done(function(results)
{
$('#box_resultados).html(results);
})


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 (javascript) [Seleccionar]

.done(function(results)
{
$('#box_resultados).eval(results);
})


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 (php) [Seleccionar]

$tmp = '';
$tmp.= '<div style="background: yellow;">
                  <h1>Ejecutado</h1>
           </div>';
echo $tmp;


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

Muchas gracias.

engel lex

no tiene mucho sentido usar eval ahi, podrías poner el link del tema para ver el contexto
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.


engel lex

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 (javascript) [Seleccionar]
function Sumar(value_a, value_b)
{
     var resultado_suma = valor_a + valor_b;
     $.ajax({
          url: 'archivo_ajax.php',
  type: 'POST',
  dataType: 'html',
  data: {resultado_suma},
     })

     .done(function(results)
     {
  $('body').append(results);
     })
}


donde el ajax es

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


hagas

Código (javascript) [Seleccionar]
function Sumar(value_a, value_b)
{
     var resultado_suma = valor_a + valor_b;
     $.ajax({
          url: 'archivo_ajax.php',
  type: 'POST',
  dataType: 'html',
  data: {resultado_suma},
     })

     .done(function(results)
     {
  eval(results);
     })
}


y el ajax sea

Código (html4strict) [Seleccionar]
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)
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Leguim