2017-01-19 5 views
0

Я пытаюсь выбрать данные на основе значения, у меня есть форма, которая выбирает данные из таблицы команд, мне нужно получить идентификатор этой строки из раскрывающегося списка выбора (который Я могу это сделать), но затем использовать это, чтобы определить данные, которые ему нужно выбрать, когда im делает запрос AJAX. Здесь идет:Выберите данные на основе значения ID

Команды страницы - Эта страница рисует мой график, который втягивает в данных через 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> 

Вот является 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); 

?> 

Im черчения графика вне через другой файл:

$(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, чтобы показать мне данные, определенные по значению идентификатора команды, а не статическое значение, но я не уверен, как передать идентификатор из выбора обратно в файл AJAX?

+0

Вы ищете ГДЕ ключи статьи и значения или только значения? – Paul

+0

Я пытаюсь получить раскрывающийся список выбора, чтобы иметь возможность выбирать на основе этого предложения where, например, если мое выпадающее значение равно 'id_1', а предложение where - id_1, оно будет отображать данные из этой строки. Я даже не могу получить этот файл, чтобы увидеть его еще. – PhpDude

+0

По сути, я хочу, чтобы иметь возможность POST из моей формы выбора на страницу, где есть предложение SELECT, а затем использовать значение, это сообщение в виде предложения WHERE. – PhpDude

ответ

1

Затем используйте сеансы. $_SESSION['teamID'] = $teamID. Тогда вы можете ссылаться на него где угодно. Обязательно запустите сеанс в верхней части каждого файла php, используя сеансы.

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

Ссылка:

+0

Это идеальное решение, я полностью забыл, что могу использовать сеансы – PhpDude

+0

Рад, что он нажал. Иногда другой набор глаз помогает ... Наслаждайтесь! – Paul

+0

Кроме того, посмотрите, сколько людей прокомментировало, неплохо для голосования -2 down. Я проголосую за него;) – Paul