Это мой код для выбора местоположения из раскрывающегося меню и рисования круговой диаграммы из базы данных postgresql. Я не могу нарисовать круговую диаграмму при выборе определенного местоположения, вместо этого при выборе местоположения появляется круговая диаграмма, которая содержит все значения столбцов.
База данных для создания круговой диаграммы:
Code to select state Select.php
<html>
<head>
<script type = "text/javascript" src = "js/jquery.js"></script>
<script type = "text/javascript">
function fetch_select(val)
{
$.ajax({
type: 'post',
url: 'connect.php',
data: {
get_option:val
},
success: function (response) {
document.getElementById("fd").innerHTML=response;
}
});
}
</script>
</body>
<div id = "select">
<select onchange = "fetch_select(this.value);">
<option>Select District</option>
<?php
$host = 'localhost';
$port = '5433';
$database = 'sustainable';
$user = 'postgres';
$password = 'postgis';
$connectString = 'host=' . $host . ' port=' . $port . ' dbname=' . $database .
' user=' . $user . ' password=' . $password;
$link = pg_connect ($connectString);
if (!$link)
{
die('Error: Could not connect: ' . pg_last_error());
}
$query='select id,location,sdg_4,sdg_5 from sustainable_development';
$result = pg_query($query);
while ($row = pg_fetch_assoc($result)) {
unset($id, $name);
$id = $row['id'];
$name = $row['location'];
echo '<option value = "'.$id.'">'.$name.'</option>';
}
echo "</select>";
?>
<div id = "fd">
</div>
</div>
</body>
</html>
> Code to draw pie chart
<!DOCTYPE html>
<html lang = "en">
<head>
<title>Pie Chart Demo (LibChart)- https://codeofaninja.com/</title>
<meta http-equiv = "Content-Type" content = "text/html; charset=ISO-8859-15" />
</head>
<body>
<br></br>
<?php
include "C:/xampp/htdocs/sdg/tools/libchart/libchart/classes/libchart.php";
$chart = new PieChart( 500, 300 );
$dataSet = new XYDataSet();
$host = 'localhost';
$port = '5433';
$database = 'sustainable';
$user = 'postgres';
$password = 'postgis';
$connectString = 'host=' . $host . ' port=' . $port . ' dbname=' . $database . ' user=' . $user . ' password=' . $password;
$link = pg_connect ($connectString);
if (!$link)
{
die('Error: Could not connect: ' . pg_last_error());
}
$query = 'select * from sustainable_development';
$result = pg_query($query);
$i=0;
if ($i < pg_num_fields($result))
{
while( $row = pg_fetch_assoc($result) ){
extract($row);
$dataSet->addPoint(new Point("{$sdg_4}", $sdg_4));
$dataSet->addPoint(new Point("{$sdg_5}",$sdg_5));
//break;
}
$chart->setDataSet($dataSet);
$chart->setTitle("SDG score for SDG_4 and SDG_5");
$chart->render("1.png");
echo "<img alt='Pie chart' src='1.png' style='border: 1px solid gray;'/>";
}
else{
echo "No programming languages found in the database.";
}
pg_free_result($result);
?>
</body>
</html>
Output displayed :
Output required is :



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Почему бы вам не поместить этот php-код в другой файл?
А потом назовите это:
include('/my/phpfile.php')
Код require Once позволяет вам подключать код в другом каталоге и в одном каталоге. точки означают, что он находится в том же каталоге. это код для другого каталога:
require_once("../includes/database.php");
это код того же каталога.
require_once("database.php");
Я думаю, что это может быть тот ответ, который вы ищете, а также лучший и наиболее организованный способ. поэтому я бы рекомендовал поместить его в другой файл php и связать их, используя этот образец кода.
ПРИМЕЧАНИЕ в моем случае файл называется database.php