php - 根据ID值选择数据

标签 php jquery mysql chart.js

我正在尝试根据值选择数据,我有一个从团队表中选择数据的表单,我需要从选择下拉列表中获取该行的 ID(我可以这样做),然后使用以确定在执行 AJAX 请求时需要选择的数据。这里是:

团队页面 - 此页面绘制我的图表,该图表通过 AJAX 提取数据来绘制图表及其值:

            <form action="teams.php?dashboard_id=<?php echo $dashboard_id; ?>" method="POST">

                <select name="teamId">
                <option selected="true" disabled="disabled">Please choose...</option>
                <?php

                    $sql = "SELECT * FROM teams WHERE dashboard_id = $dashboard_id";
                    $result = $conn->query($sql);

                    if($result->num_rows > 0){
                        while($row = $result->fetch_assoc()){
                            echo '<option value=' . $row["team_id"] . '>' . $row["team_name"] . '</option>';        
                        }
                    }
                ?>
                </select>
                <button class="compare">View</button>
            </form>


            <?php
            if (!empty($_POST["teamId"])) {
                $teamSelect = $_POST["teamId"];
                echo $teamSelect;    
            }else{  
                echo "";
            }
            ?>

            <div style="max-width: 450px;">
              <canvas id="mycanvas" class="container"></canvas>
            </div>

这是我在其上执行 SELECT 的 PHP 页面:

<?php

include 'config.php';

$teamID = $_POST['teamId'];

$query = sprintf("SELECT
tm.member_id,
tm.team_id,
m.member_id,
m.firstName,
m.lastName,
m.score_1,
m.score_2,
m.score_3,
m.score_4,
m.score_5,
m.score_6,
m.score_7,
m.score_8,
m.dashboard_id,
t.team_id,
t.team_name,
t.dashboard_id
FROM team_members tm
JOIN members AS m
on m.member_id = tm.member_id
JOIN teams AS t
on t.team_id = tm.team_id
WHERE tm.team_id = '$teamID'"); // This need to be dynamic and got from the POST request on the form above.

$result = $conn->query($query);

$data = array();
foreach ($result as $row) {
  $data[] = $row;
}

$result->close();
$conn->close();
header('Content-type: application/json');
print json_encode($data);

?>

我通过另一个文件绘制图表:

$(document).ready(function(){ 

$.ajax({ 
url : "http://localhost/acredashAdv/teamData.php", 
type : "GET", 
success :function(data){ 
console.log(data); 


var chartata = { 
labels: [ 
"Strategic Development and Ownership", 
"Driving change through others", 
"Exec Disposition", 
"Commercial Acumen", 
"Develops High Performance Teams", 
"Innovation and risk taking", 
"Global Leadership", 
"Industry Leader" 
]}; 

var ctx = $("#mycanvas"); 

var config = { 
    type: 'radar', 
    data: chartata, 
    animationEasing: 'linear',
        options: {
         legend: {
            display: true,
            position: 'bottom'
        },
         tooltips: {
            enabled: true
        },
        scale: {
            ticks: {
                fontSize: 15,
                beginAtZero: true,
                stepSize: 1
            }
        } 

    },
}, 

LineGraph = new Chart(ctx, config); 

var colorArray = [
    ["#7149a5", false],
    ["#58b7e0", false],
    ["#36bfbf", false],
    ["#69bd45", false],
    ["#5481B1", false],
    ["#6168AC", false]
];


for (var i in data) { 
    tmpscore=[]; 
    tmpscore.push(data[i].score_1); 
    tmpscore.push(data[i].score_2); 
    tmpscore.push(data[i].score_3); 
    tmpscore.push(data[i].score_4); 
    tmpscore.push(data[i].score_5); 
    tmpscore.push(data[i].score_6); 
    tmpscore.push(data[i].score_7); 
    tmpscore.push(data[i].score_8); 

    var color, done = false;
    while (!done) {
        var test = colorArray[parseInt(Math.random() * 6)];
        if (!test[1]) {
            color = test[0];
            colorArray[colorArray.indexOf(test)][1] = true;
            done = !done;
        }
    }


newDataset = { 
    label: data[i].firstName+' '+data[i].lastName, 
     borderColor: color,
    backgroundColor: "rgba(0,0,0,0)", 
    data: tmpscore, 
}; 

    config.data.datasets.push(newDataset); 

} 

LineGraph.update(); 
},  
}); 

});

这一切都很棒,但在我的选择查询中,我需要 WHERE 子句来显示根据团队 ID 的值确定的数据,而不是静态值,但我不确定如何将 ID 从选择传递回AJAX 文件?

最佳答案

然后使用 session 。 $_SESSION['teamID'] = $teamID。然后你就可以在任何地方引用它。请务必使用 session 在每个 php 文件的顶部启动 session 。

session_start();
$teamID = $_POST['teamId'];
$_SESSION['teamID'] = $teamID;

引用文献:

关于php - 根据ID值选择数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41746216/

相关文章:

mysql - 获取ON子句中值为 'x'的行的ID

mysql - 在同一查询中使用查询结果?

php - 验证记录是否已成功插入的最佳方法是什么?

php - 如何将选定的选项值作为文本字段的名称属性传递?

php - 使用 php 中的字符串运行 MySQL 查询

javascript - 检测来自不同 DOM 元素的数据变化

javascript - 如何使用 jQuery 从所有 div 中删除一个类,而不仅仅是 sibling ?

javascript - 如何让 Workbox PWA 与 .php 文件一起工作

javascript - 根据更改事件填充选择下拉列表

使用 PFK 的 MySQL View