Buenos días a todos!
Siempre que use ajax para devolver los resultados usaba .html
.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.
.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
$tmp = '';
$tmp.= '<div style="background: yellow;">
<h1>Ejecutado</h1>
</div>';
echo $tmp;
Como sería para poder devolver los resultados con eval();
Muchas gracias.
no tiene mucho sentido usar eval ahi, podrías poner el link del tema para ver el contexto
Cita de: 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
Es este
https://foro.elhacker.net/desarrollo_web/pregunta_iquestcomo_podria_ejecutar_solamente_un_script_en_un_archivo_ajax-t498627.0.html
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
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
<script type="text/javascript>
alert('<?php echo($_POST['resultado_suma']); ?>');
</script>
hagas
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
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)
Ahora entendí, te agradezco mucho! ;-)