Me ayudan con este array JSON
tengo problemas que no se ejecuta y vota un error
Uncaught SyntaxError: Unexpected end of JSON input
at JSON.parse (<anonymous>)
ya he hecho miles de cosas y naa
index.php
Editado
Uncaught SyntaxError: Unexpected end of JSON input
at JSON.parse (<anonymous>)
ya he hecho miles de cosas y naa
index.php
<?php include_once 'conexion.php'; ?> <script> setInterval( function(){ var usuario = $('#user-usuario').text(); $.ajax({ url: 'datosf.php', type: 'POST', data: 'usuario='+usuario, success: function (fins) { $('#data').text(fins); //var data = JSON.parse(fins); } }); //ajax },1000); </script> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="robots" content="noodp"> <title>Dashboard – </title> <script id="data" type="application/json"></script> </head> <body> <span id="user-usuario">4299</span> <br> <span class="value"><span id="user-balance">0.00108178</span> </span> <span class="label"> Corriendo</span> <script > var data = JSON.parse(document.getElementById('data').innerHTML); console.log(data); if (userBalance = document.getElementById('user-balance')) { var lastBalance = parseFloat(data.user.balance); var tabLeaveBalance = lastBalance; var tabLeave = Date.now(); function addUserBalance(add) { lastBalance = parseFloat(lastBalance + add); userBalance.innerHTML = lastBalance.toFixed(8); } window.addEventListener('blur', function () { tabLeave = Date.now(); tabLeaveBalance = parseFloat(lastBalance); }); window.addEventListener('focus', function () { lastBalance = tabLeaveBalance + ((Date.now() - tabLeave) / 2) * parseFloat(data.user.profit_sec); }); window.setInterval(function() { addUserBalance(parseFloat(data.user.profit_sec)); }, 10); } </script> <!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> </body> </html>datosf.php
<?php include_once 'conexion.php'; $usuario = $_POST['usuario']; // Consulta de perfil $ses= $mysqli->query("SELECT * FROM user WHERE user_id = $usuario "); while($row = $ses->fetch_assoc()) { $fins['user'] = $row; } echo json_encode($fins); ?>
Editado
0
Puntos
Puntos
1440
Visitas
Visitas
6
Resp
Resp
Por donjesco hace 72 meses
Principiante
Respuesta #1
hola el error lo tienes en esta linea:
salu2
var data = JSON.parse(document.getElementById('data').innerHTML);se supone que con innerHTML estas capturando el "html" que esta dentro de:
<script id="data" type="application/json"></script>y dentro de esa linea no hay html, también veo algo raro que pongas una id a un script, si nos puedes das mas información te estaría agradecido
salu2
0
Puntos
Puntos
Por alber hace 72 meses
Administrador
Respuesta #2
en el script se muestra
y id data que tiene script es para que JSON.parse obtenga esos datos y siga la función
<script id="data" type="application/json"></script>se muestra
y id data que tiene script es para que JSON.parse obtenga esos datos y siga la función
var data = JSON.parse(document.getElementById('data').innerHTML);
0
Puntos
Puntos
Por donjesco hace 72 meses
Principiante
Respuesta #3
ya pero si haces un console.log de la variable data veras que no hay html ppr ningún lado, por lo que no parece la forma mas recomendada para capturar el array del script
a ver si pasa alguién que este más metido en json y te ayuda crack
salu2
a ver si pasa alguién que este más metido en json y te ayuda crack
salu2
0
Puntos
Puntos
Por alber hace 72 meses
Administrador
Respuesta #4
algo que puedes probar es poner el jquery.js en la parte de arriba del fichero por que estas ejecutando acciones del jquery sin tenerlo cargado
o puedes poner el tipico document ready para que tus scripts esperen a que el jquery este cargado
salu
o puedes poner el tipico document ready para que tus scripts esperen a que el jquery este cargado
salu
1
Puntos
Puntos
Por alber hace 72 meses
Administrador
Respuesta #5
hola alber probe escribiendo directamente
pero al borrarle parra que se ejecute desde la base datos no..
en la linea a continuación dime algunos mas métodos: text, html
gracias alber seguiré buscando y buscando hasta encontrar el error de la experiencia se aprende..
<script id="data" type="application/json">{"user":{"user_id":"4299","balance":"0.00000001","profit_sec":"50.88859e-11"}} </script>asi si corre y funciona correctamente.
pero al borrarle parra que se ejecute desde la base datos no..
en la linea a continuación dime algunos mas métodos: text, html
$('#data').text(fins);
$('#data').html(fins);
gracias alber seguiré buscando y buscando hasta encontrar el error de la experiencia se aprende..
0
Puntos
Puntos
Por donjesco hace 72 meses
Principiante
Respuesta #6
ok ya te encontré una solución:
esto es lo que obtienes:
sin errores, espero que te sirva salu2
<?php include_once 'conexion.php'; ?> <script> setInterval( function(){ var usuario = $('#user-usuario').text(); $.ajax({ url: 'datosf.php', type: 'POST', data: 'usuario='+usuario, success: function (fins) { $('#data').text(fins); prueba(); //var data = JSON.parse(fins); } }); //ajax },1000); </script> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="robots" content="noodp"> <title>Dashboard – </title> <script id="data" type="application/json"></script> </head> <body> <span id="user-usuario">4299</span> <br> <span class="value"><span id="user-balance">0.00108178</span> </span> <span class="label"> Corriendo</span> <script > function prueba(){ var data = JSON.parse(document.getElementById('data').innerHTML); console.log(data); if (userBalance = document.getElementById('user-balance')) { var lastBalance = parseFloat(data.user.balance); var tabLeaveBalance = lastBalance; var tabLeave = Date.now(); function addUserBalance(add) { lastBalance = parseFloat(lastBalance + add); userBalance.innerHTML = lastBalance.toFixed(8); } window.addEventListener('blur', function () { tabLeave = Date.now(); tabLeaveBalance = parseFloat(lastBalance); }); window.addEventListener('focus', function () { lastBalance = tabLeaveBalance + ((Date.now() - tabLeave) / 2) * parseFloat(data.user.profit_sec); }); window.setInterval(function() { addUserBalance(parseFloat(data.user.profit_sec)); }, 10); } } </script> <!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> </body> </html>básicamente meter tu script json dentro de una función:
function prueba(){ //Aquí el JSON }y después ejecutar la función prueba() dentro del loop de 1000ms que tienes arriba ya que cada vez que refrescas el json tiene que vover a capturar los nuevos valores no??
esto es lo que obtienes:
sin errores, espero que te sirva salu2
2
Puntos
Puntos
Por alber hace 72 meses
Administrador