AJAX: таблица не отображается в раскрывающемся списке изменений - PullRequest
1 голос
/ 12 июля 2020

У меня есть два раскрывающихся списка, второй раскрывающийся список зависит от первого раскрывающегося списка, а таблица зависит только от второго раскрывающегося списка.

У меня есть этот код в основном файле php. Это сценарий ajax для таблицы и 2-го раскрывающегося списка:

<script>
      $(document).ready(function() {

        function GenerateReports(qry){
        $.ajax({
          url: "include/project-table.php",
          method: "POST",
          data: {qry:qry},
          success: function(data) {
            $("#project_result").html(data);
            console.log(data);
          }
        });
      }

      $("#selection2").on("change", function(){
        var qry = $(this).val();
        GenerateReports(qry);
      });

  });

function makeAjaxRequest(opts){ 
        $.ajax({
          type: "POST",
          data: { opts: opts },
          url: "dropdown.php",
          success: function(res) {
            $("#results").html(res);
          }
        });
      }

      $("#selection1").on("change", function(){
        var selected = $(this).val();
        makeAjaxRequest(selected);
      });


</script>

Теперь таблица должна появиться здесь:

<div class="card shadow mb-4 fa-sm">
            <div class="card-header py-3">
              <h6 class="m-0 font-weight-bold text-primary">Result</h6>
            </div>
            <div class="card-body">
              <div id="project_result">

             </div>
            </div>
          </div>

Файл php для выборки данных и таблица, имя файла: project-table. php

if($_POST['qry']!="")
     {
            $selected = $_POST['qry'];

            if($selected<10 && $selected>1)
            {
                  $sqlphase = $conn->prepare('SELECT pd.projectid, projectname, date_created, pd.projectphaseid, phasename, projectstatus, pd.critical_id, rcr.criticality, assignedto FROM project_details pd LEFT JOIN ref_criticality rcr ON pd.critical_id=rcr.critical_id LEFT JOIN ref_project_phase rpp ON pd.projectphaseid=rpp.projectphaseid LEFT JOIN users us pd.assignedto=us.userid WHERE pd.assignedto=:userid AND pd.projectphaseid=:selected');
              $sqlphase->execute(['userid'=>$userid, 'selected'=>$selected]);


              echo "<div class='table-responsive'>
              <table class='table table-bordered' width='100% 'cellspacing='0'>

                <thead>
                    <tr>
                      <th>Project ID</th>
                      <th>Project Name</th>
                      <th>Date Created</th>
                      <th>Phase</th>
                      <th>Status</th>
                      <th>Criticality</th>
                    </tr>
                  </thead>
                  <tbody>";
                
                        while($displayphasedetails = $sqlphase->fetch(PDO::FETCH_ASSOC))
                          {
                                echo "<tr>";
                                 echo "<td>" .$displayphasedetails['projectid']. "</td>";
                                 echo "<td>" .$displayphasedetails['projectname']. "</td>";
                                 echo "<td>" .$displayphasedetails['date_created']. "</td>";
                                 echo "<td>" .$displayphasedetails['phasename']. "</td>";
                                 echo "<td>" .$displayphasedetails['projectstatus']. "</td>";
                                 echo "<td>" .$displayphasedetails['criticality']. "</td>";
                                echo "</tr>";
                                
                          }
                echo "</tbody>
                 </table>
                 </div>";
            }
          elseif($selected == "FULL" || $selected == "LIMITED" || $selected == "NO PARTICIPATION" || $selected == "ENDORSED")
          {
              $sqlapproval = $conn->prepare('SELECT projectid, projectname, date_created, pd.projectphaseid, phasename, projectstatus, pd.critical_id, rcr.criticality, approval_type, assignedto FROM project_details pd LEFT JOIN ref_criticality rcr ON pd.critical_id=rcr.critical_id LEFT JOIN ref_project_phase rpp ON pd.projectphaseid=rpp.projectphaseid LEFT JOIN users us pd.assignedto=us.userid WHERE pd.assignedto=:userid AND approval_type=:selected');
              $sqlapproval->execute(['userid'=>$userid, 'selected'=>$selected]);

              echo "<div class='table-responsive'>
              <table class='table table-bordered' width='100% 'cellspacing='0'>

               <thead>
                    <tr>
                      <th>Project ID</th>
                      <th>Project Name</th>
                      <th>Date Created</th>
                      <th>Phase</th>
                      <th>Status</th>
                      <th>RA Participation</th>
                      <th>Criticality</th>
                    </tr>
                  </thead>
                  <tbody>";
                   
                            while($displayapprovaldetails = $sqlapproval->fetch(PDO::FETCH_ASSOC))
                               {
                             
                                 echo "<tr>";
                                 echo "<td>" .$displayapprovaldetails['projectid']. "</td>";
                                 echo "<td>" .$displayapprovaldetails['projectname']. "</td>";
                                 echo "<td>" .$displayapprovaldetails['date_created']. "</td>";
                                 echo "<td>" .$displayapprovaldetails['phasename']. "</td>";
                                 echo "<td>" .$displayapprovaldetails['projectstatus']. "</td>";
                                 echo "<td>" .$displayapprovaldetails['approval_type']. "</td>";
                                 echo "<td>" .$displayapprovaldetails['criticality']. "</td>";
                                echo "</tr>";
                               }

                        echo "</tbody>
                         </table>
                         </div>";
          }
  }

вот мой второй раскрывающийся список: filename: dropdown. php

<?php
$selected = $_POST['opts'];

    if($selected == "Project Phase")
     {
    $sqlphasename = $conn->query('SELECT projectphaseid, phasename FROM ref_project_phase');
 }

?>
          <div class="form-group">
            <label class="form-control-label">Filter 2</label>
             <select class="form-control form-control-sm" name="selection2" id="selection2">

        <?php
             if($selected == "Project Phase")
                 {
                  while($row = $sqlphasename->fetch(PDO::FETCH_ASSOC))
                   {
        ?>
            <option value="<?php echo $row['projectphaseid'];?>"><?php echo $row['phasename'];?></option>
        <?php
             }
     }
     else
      {
  ?>

     <option value="FULL">FULL</option>
     <option value="LIMITED">LIMITED</option>
     <option value="NO PARTICIPATION">NO PARTICIPATION</option>
     <option value="ENDORSED">ENDORSED</option>
  <?php
     }
  ?>
  </select>
 </div>

Я попробовал console.log, но он ничего не показывает. Таблица не отображается после того, как я выберу какие-либо значения в selection2. Пожалуйста, помогите мне найти проблему и решить ее. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...