Necesito realizar una consulta a la BD en Mysql pero siempre obtengo este error: SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
Y este sería el codigo.
Aquí presiono un boton llamado Actualizar.
'use stric'
$(document).ready(function(){
$("#actualizar").on('click',function(){
obj = { "table":"solicitudes" };
dbParam = JSON.stringify(obj);
xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
myObj = JSON.parse(this.responseText);
for (x in myObj) {
txt += myObj[x].name + "<br>";
}
$("#request").innerHTML = txt;
}
};
xhr.open("POST", "php/Spend.php", true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send("x=" + dbParam);
});
});
En la consola obtengo el mismo error que en PHP "SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data" indica que el error esta en la línea: myObj = JSON.parse(this.responseText);
entiendo que lo entrega por que es la respuesta de PHP. Aqui el codigo de PHP.
<?php
header("Content-Type: application/json; charset=UTF-8");
$obj = json_decode($_POST["x"], false);
print_r($obj);
$conn = new mysqli("localhost", "root", "", "BD");
$stmt = $conn->prepare("SELECT `titulo_solicitud` FROM ? ");
$stmt->bind_param("s", $obj->table);
$stmt->execute();
$result = $stmt->get_result();
$outp = $result->fetch_all(MYSQLI_ASSOC);
echo json_encode($outp);
$conn->close(); ?>
Y esta es la respuesta del servidor en la consola de desarrollador:
stdClass Object
(
[table] => solicitudes
)
<br />
<b>Fatal error</b>: Uncaught Error: Call to a member function bind_param() on boolean in /opt/lampp/htdocs/sf/php/Spend.php:8
Stack trace:
#0 {main}
thrown in <b>/opt/lampp/htdocs/sf/php/Spend.php</b> on line <b>8</b><br />
La línea 8 es $stmt->bind_param("s", $obj->table);
No entiendo en donde esta el error de sintaxis