我正在尝试创建一个D3线图,该图表将显示特定于下拉菜单中所选项目的图表。我有一个脚本查询我的MySQL数据库并填充一个包含所有正确选项的下拉菜单。从那里,我想点击一个选项,然后转到另一个页面,根据该选择创建一个折线图。当我单击某个选项时,我使用json_encode
创建一个应该与D3兼容的JSON对象。
我有另一个脚本完全处理绘制图形并尝试使用d3.json
来获取单击特定选择时创建的JSON对象。每当我尝试加载图形页面时,它都是完全空白的。我不确定我想做的事情是否可行。我没有尝试在与创建图形的脚本相同的脚本中包含下拉列表但不认为我能够以相同的方式从数据库中获取信息。
非常感谢任何指导或建议。如果确定我要做的事情是可能的,我可以稍后发布代码。谢谢!
修改
这是在我的数据库中查询放在下拉菜单中的用户的脚本,然后再次查询数据库以查找该选择的数据。下拉菜单具有所需的结果,并且数据也正确回显。
<?php
if (isset($_POST['name']))
{
$out = $_POST['name'];
$temp = explode(",", $out);
$populate_selection = "SELECT id, lastname, firstname FROM users WHERE id != '$temp[0]' ORDER BY lastname";
$out = $temp[1] . ', ' . $temp[2];
$student_hours = "SELECT ai_averages.user_id, ai_averages.title, ai_averages.hours FROM ai_averages INNER JOIN users ON ai_averages.user_id = users.id WHERE $temp[0] = ai_averages.user_id";
}
else
{
$temp[0] = " ";
$populate_selection = "SELECT id, lastname, firstname FROM users ORDER BY lastname";
$student_hours = "SELECT ai_averages.user_id, ai_averages.title, ai_averages.hours FROM ai_averages INNER JOIN users ON ai_averages.user_id = users.id WHERE $temp[0] = ai_averages.user_id";
$out = " ";
}
$result = $mysqli->query($populate_selection);
$option = "<option value= '{$temp[0]}'>$out</option>";
while($row = mysqli_fetch_assoc($result)) {
$option .= "<option value = '{$row['id']}, {$row['lastname']}, {$row['firstname']}'>{$row['lastname']}, {$row['firstname']} </option>";
}
if($student_results = $mysqli->query($student_hours))
{
$data = array();
for ($x = 0; $x < mysqli_num_rows($student_results); $x++)
{
//this array contains the data that I want in my graph
//the correct data is echoed every time that I click on the different choices
$data[] = mysqli_fetch_assoc($student_results);
}
echo json_encode($data, JSON_PRETTY_PRINT);
}
?>
<form id = "hello" method = "POST" >
<select name = "name" onchange = 'this.form.submit()'> <?php echo $option; ?> </select>
</form>
然后我尝试使用d3.json("filename.php", etc)
从$data
数组中获取信息,但这没有用。