2017-01-09 3 views
-1

У меня есть диаграмма, созданная с использованием d3.js, где, если вы наведите курсор на месяцы, будут найдены еженедельные баллы.Получение JSON в файл d3.js

Fiddle ссылка на графику я говорю здесь: https://jsfiddle.net/qp7L1hob/1/

У меня есть таблица в моей БД, где я вести учет баллов Сотрудников каждого week.What вы видите здесь только для четыре недели - (неделя1 - неделя4), но в моей БД у меня есть запись за все недели месяцев. Это просто для справки.

Таблица pointsScored: score После того, как пользователь входит в систему, я хочу, чтобы отобразить только соответствующие scores.Lets этого лица говорят, что если Роб входит в систему, его оценку week1 составляет 47, week2 44, week3 44 и week4 является 43.

Выпуск: Я Using php to extract json от SQL сервера. Ниже PHP файл делает это.

Проблема заключается в том, как я могу получить JSON в файл d3.js, то есть вышеприведенную скрипку.

, пожалуйста, помогите.

json файл (позволяет назвать его как data.php): Я понимаю, что мне нужно, чтобы включить этот data.php в вышеприведенном d3.js file.But не уверен, как это сделать.

<?php 
 
session_start(); 
 
$servername="xxxxxxx"; 
 
$connectioninfo=array('Database'=>'xxxxxx'); 
 
$conn=sqlsrv_connect($servername,$connectioninfo); 
 
if($conn) 
 
{ 
 
echo 'connection established'; 
 

 
} 
 
else 
 
{ 
 
echo 'connection failure'; 
 
die(print_r(sqlsrv_errors(),TRUE)); 
 
} 
 

 
$q1="SELECT WeekNumber,pointsRewarded,EmployeeID FROM pointsBadgeTable WHERE EmployeeID = '" . $_SESSION['id'] . "' "; 
 
$stmt=sqlsrv_query($conn,$q1); 
 
if($stmt==false) 
 
{ 
 
echo 'error to retrieve info !! <br/>'; 
 
die(print_r(sqlsrv_errors(),TRUE)); 
 
} 
 
do { 
 
    while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){ 
 
     $result[] = $row; 
 
    } 
 
} while (sqlsrv_next_result($stmt)); 
 

 

 
sqlsrv_free_stmt($stmt); 
 
sqlsrv_close($conn); //Close the connnectiokn first 
 
echo json_encode($result); //You will get the encoded array variable 
 
?>

+1

Я не уверен, что вы имели в виду, получая данные в D3.js. Если вы посмотрите внимательно, вы ссылаетесь на массив dataWeeks при показе подсказки (Weeks info). Один из способов сделать это - сначала заполнить массив и создать граф. Передайте dataWeeks (заполненные данными из конечной точки) в функцию генерации. –

+0

@FarooqKhan спасибо за ввод. Я новичок в d3.js, поэтому нам не нужна небольшая помощь, чтобы передать dataweeks в функцию gererating. Я не могу заполнить массив, поскольку данные являются dynamic.but, можно ли эхо-переменную из json в dataweeks. Как вы это сделаете? – jane

ответ

1

Позвольте мне дать вам направление, чтобы понять, вы можете использовать AJAX для вызова файла PHP и получить данные

var xhttp = new XMLHttpRequest(); 
xhttp.onreadystatechange = function() { 
    if (this.readyState == 4 && this.status == 200) { 
     var dataObj = JSON.parse(response.responseText); // parse data into JSON object 
     chartDrawFunction(dataObj); // call draw here, to load chart only when you have data 

    } 
}; 
xhttp.open("GET", "data-url-to-be-passed", true); // pass the URL here 
xhttp.send(); 

Update

Как я понял вопрос другой, если файл PHP был отделен от представления. В поле зрения вы можете повторить данные в переменной JavaScript, как

var data = <?php echo data; ?>; 
+0

Почему мы делаем вызов Ajax в файле d3.js здесь – jane

+0

Как вы планируете получать данные из базы данных? –

+0

Я получаю данные как json из БД, используя приведенный выше код. Мне просто нужно эхо-данные в d3.js. Я просто не знаю, как это сделать. – jane

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