2015-01-13 2 views
0

Я получаю объект JSON от php, содержащий только количество различных значений для столбца. Вот соответствующая часть:Неожиданный идентификатор при разборе JSON

[Object] 
0: Object 
count(distinct value): "456" 

«Value» является именем столбца (и, да, я знаю, что это не является хорошим выбором для имени столбца).

Мой jquery выглядит так. Я пытаюсь просто получить «456» и добавить его в div.

$.getJSON('attribute_count.php', function(data) { 
$.each(data, function(key, val) { 
var attribute_count = val.count(distinct value); 
$('#attribute_count').append(attribute_count); 
}); 
}); 

Однако это выдает ошибку: неперехваченный SyntaxError: Неожиданный идентификатор на линии:

var attribute_count = val.count(distinct value); 

Я использовал этот точный синтаксис, чтобы получить и добавить другие данные из этой базы данных без проблем. Я предполагаю, что часть «счет (отличная стоимость)» является проблемой, но не уверен, как ее исправить. Вот соответствующая часть моего PHP:

$sql = "select count(distinct value) from full_data_complete;"; 
$result = $dbh->query($sql)->fetchAll(PDO::FETCH_ASSOC); 
header('Content-type: application/json'); 
echo json_encode($result); 

Любые мысли будут оценены.

+3

«отличное значение» - это просто не синтаксис JavaScript. Это имеет смысл в SQL. – Pointy

+0

, как указал Уоуи, «val.count (отличное значение)' неверный синтаксис ... игнорирование это '$ result' valid JSON? Ваша ошибка относится к тому, что ответ недействителен. –

+0

'console.log (data)' покажет вам, с какими ключами вы должны работать. –

ответ

3

Ваш текущий код ищет метод count на val, наряду с некоторыми неопределенными параметрами.

Лучшим решением было бы псевдоним столбца в SQL, используя ключевое слово AS.

Ваш SQL будет выглядеть:

SELECT COUNT(distinct value) AS distinct_value_count FROM full_data_complete; 

Теперь вы можете получить доступ к нему в вашем JavaScript, как:

data.distinct_value_count 

Вам не нужно в цикле данные, так как он является объектом ,

$.getJSON('attribute_count.php', function(data) { 
    var attribute_count = data.distinct_value_count; 
    $('#attribute_count').append(attribute_count); 
}); 
+0

Это работало отлично и, вероятно, я должен был сделать это в первую очередь, но не знал, как это сделать. Благодарю. – jonmrich

0

если val фактически объект, содержащий count(distinct value) поле, вы хотите сказать:

var attribute_count = val["count(distinct value)"]; 
+0

Это вернулось с атрибутом_count как undefined. Возможно, я не должен использовать val, но я не совсем понимаю, что использовать. – jonmrich

Смежные вопросы