Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
159
rated 0 times [  165] [ 6]  / answers: 1 / hits: 31474  / 7 Years ago, mon, february 20, 2017, 12:00:00

I am unable to access json data as it always fails and gives error as
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
search.php outputs the json data but scripts.js outputs json.parse error
script.js



// execute when the DOM is fully loaded
$(function() {

console.log(1);

$(#q).typeahead({
autoselect: true,
highlight: true,
minLength: 1
},
{
source: search,
templates: {
empty: no places found yet,
suggestion: _.template(<p><%- subname %></p>)
}
});

// re-center map after place is selected from drop-down
$(#q).on(typeahead:selected, function(eventObject, suggestion, name) {


});


});
function search(query, cb)
{
// get places matching query (asynchronously)
var parameters = {
sub: query
};
$.getJSON(search.php, parameters)
.done(function(data, textStatus, jqXHR) {
cb(data);
})
.fail(function(jqXHR, textStatus, errorThrown) {
console.log(errorThrown.toString());
});
}


search.php



<?php

require(__DIR__ . /../includes/config.php);
$subjects = [];
$sub = $_GET[sub].%;
$sql = SELECT * from subjects where subname LIKE '$sub';
echo $sql;
if($rows = mysqli_query($con,$sql))
{
$row = mysqli_fetch_array($rows);
while($row){
$subjects[] = [

'subcode' =>$row[subcode],
'subname' => $row[subname],
'reg' => $row[reg],
'courseid' =>$row[courseid],
'branchid' => $row[branchid],
'yrsem' => $row[yrsem]
];
$row = mysqli_fetch_array($rows);
}
}
// output places as JSON (pretty-printed for debugging convenience)
header(Content-type: application/json);
print(json_encode($subjects, JSON_PRETTY_PRINT));

?>

More From » php

 Answers
19

Solution for your problem is JSON.stringify



You need to convert your data output into string i.e.,



 var yourDataStr = JSON.stringify(yourdata) 


and then validate your data with



JSON.parse(yourDataStr)


Then you can get your result. To validate, you can pass your data in below function :-



function validateJSON(str) {
try {
JSON.parse(str);
} catch (e) {
return false;
}
return true;
}

[#58861] Friday, February 17, 2017, 7 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
makaylahk

Total Points: 166
Total Questions: 94
Total Answers: 117

Location: Gabon
Member since Sat, Jul 25, 2020
4 Years ago
;