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
<?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
1396
Visitas
6
Resp
Por donjesco hace 7 años
Novice
Respuesta #1
hola el error lo tienes en esta linea:
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
Por alber hace 7 años
Admin
Respuesta #2
en el script se muestra
<script id="data" type="application/json"></script>
se muestra sadfsdaf
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
Por donjesco hace 7 años
Novice
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
0
Puntos
Por alber hace 7 años
Admin
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
1
Puntos
Por alber hace 7 años
Admin
Respuesta #5
hola alber probe escribiendo directamente
<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
Por donjesco hace 7 años
Novice
Respuesta #6
ok ya te encontré una solución:
<?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:
json
sin errores, espero que te sirva salu2
2
Puntos
Por alber hace 7 años
Admin
Para comentar Inicia sesión o Regístrate
Phpres 2025@ All rights reserved.
Utilizamos cookies para mejorar la navegación en el sitio. Más información Aceptar