簡體   English   中英

PHP通過下拉列表顯示來自MySQL的用戶數據

[英]Php show users data from mysql with dropdown list

在此處輸入圖片說明 我想在帶有下拉列表的表中顯示用戶數據,第一個選項顯示所有用戶,但是當我單擊名稱時它仍然顯示所有用戶,我認為我的ajax腳本遇到了一些麻煩,因為它似乎並沒有工作

這是我顯示數據的頁面:

<?php   
//load_data_select.php  
$connect = mysqli_connect("localhost", "root", "ntr-ktb123", "absence");  
function fill_emp($connect)  
{  
  $output = '';  
  $sql = "SELECT * FROM employés";  
  $result = mysqli_query($connect, $sql);  
  while($row = mysqli_fetch_array($result))  
  {  
       $output = $output."'<option value="'.$row["IdEmp"].'">'.$row["NomEmp"].'</option>'";  
  }  
  return $output;  
 }  
function fill_Abs($connect)  
{  
  $output = '';  
  $sql = "SELECT NomEmp,PrénomEmp,DateD,DateF,CauseAbs,justifié
FROM absence.absences
WHERE 
MONTH(DateF) = MONTH(NOW())
AND
 YEAR(DateF) = YEAR(NOW());";

  $result = mysqli_query($connect, $sql); 
 echo "<table>
 <tr>
 <th>NomEmp</th>
 <th>PrénomEmp</th>
 <th>DateD</th>
 <th>DateF</th>
 <th>CauseAbs</th>
 <th>justifié<th>
  </tr>"; 
  while($row = mysqli_fetch_array($result))  
  {  
       echo "<tr>";
 echo "<td>" . $row['NomEmp'] . "</td>";
 echo "<td>" . $row['PrénomEmp'] . "</td>";
 echo "<td>" . $row['DateD'] . "</td>";
 echo "<td>" . $row['DateF'] . "</td>";
 echo "<td>" . $row['CauseAbs'] . "</td>";
 echo "<td>" . $row['justifié'] . "</td>";
 echo "</tr>";
   }  
   $output="</table>";
   return $output;  
 }  
 ?>  
 <!DOCTYPE html>  
 <html>  
  <head>  
       <title>Webslesson Tutorial | Multiple Image Upload</title>  
       <link rel="stylesheet" 

href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" 
 />  
        <script 
 src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"> 
 </script>  
       <script 
 src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"> 
 </script>  
       <style>
 table {
 width: 100%;
 border-collapse: collapse;
  }

table, td, th {
border: 1px solid black;
padding: 5px;
}

th {text-align: left;}
</style>
 <script>  
 $(document).ready(function(){  
  $('#nom').change(function(){  
       var NomEmp = $(this).val();  
       $.ajax({  
            url:"usr.php",  
            method:"POST",  
            data:{NomEmp:NomEmp},  
            success:function(data){  
                 $('#show_Abs').html(data);  
            }  
       });  
  });  
 });  
 </script> 
  </head>  
  <body>  
       <br /><br />  
       <div class="container">  
            <h3>  
              <label for="nom">Selectionnez le nom de l'employé </label>
            </br></br>
                 <select name="nom" id="nom">  
                      <option value="">Tout les employés</option> 
                      <?php echo fill_emp($connect); ?>  
                 </select>  
                 <br /><br /> <br /> 
                 <div class="row" id="show_Abs">  
                      <?php echo fill_Abs($connect);?>  
                 </div>  
            </h3>  
       </div>  
  </body>  
</html>

這是usr.php:

 <?php  
 //load_data.php  
 $connect = mysqli_connect("localhost", "root", "ntr-ktb123", "absence");  
 $output = '';  
 if(isset($_POST["NomEmp"]))  
 {  
  if($_POST["NomEmp"] != '')  
  {  
       $sql = "SELECT NomEmp,PrénomEmp,DateD,DateF,CauseAbs,justifié
FROM absence.absences
WHERE 
MONTH(DateF) = MONTH(NOW())
AND
YEAR(DateF) = YEAR(NOW()) WHERE NomEmp = '".$_POST["NomEmp"]."'";  
  }  
  else  
  {  
       $sql = "SELECT NomEmp,PrénomEmp,DateD,DateF,CauseAbs,justifié
FROM absence.absences
WHERE 
MONTH(DateF) = MONTH(NOW())
AND
 YEAR(DateF) = YEAR(NOW());";  
  }  
  $result = mysqli_query($connect, $sql);  
   $output="<table>
 <tr>
 <th>NomEmp</th>
 <th>PrénomEmp</th>
 <th>DateD</th>
 <th>DateF</th>
 <th>CauseAbs</th>
 <th>justifié<th>
 </tr>";
  while($row = mysqli_fetch_array($result))  
  {  
        echo "<tr>";
 echo "<td>" . $row['NomEmp'] . "</td>";
 echo "<td>" . $row['PrénomEmp'] . "</td>";
 echo "<td>" . $row['DateD'] . "</td>";
 echo "<td>" . $row['DateF'] . "</td>";
 echo "<td>" . $row['CauseAbs'] . "</td>";
 echo "<td>" . $row['justifié'] . "</td>";
 echo "</tr>";  
  }  
  echo $output;  
}  
?>

誰能幫助我找到問題所在? 任何幫助,將不勝感激。 謝謝。

只需像下面提到的那樣更改ajax調用即可:

    $(document).ready(function(){ 
     NomEmp = "";
     $.ajax({  
            url:"usr.php",  
            method:"POST",  
                data:{NomEmp:NomEmp},  
                success:function(data){  
                     $('#show_Abs').html(data);  
                }  
           });  

  $('#nom').change(function(){  
        NomEmp = $(this).val();  
       $.ajax({  
        url:"usr.php",  
        method:"POST",  
            data:{NomEmp:NomEmp},  
            success:function(data){  
                 $('#show_Abs').html(data);  
            }  
       });  
      });  
     });  

同樣在您的html中無法找到ID為show_Abs的標簽。 因此,只需將div修改為

<div class="row" id="show_Abs">  
 </div>  

現在,我認為php函數<?php echo fill_Abs($connect);?>是不必要的。 首次加載頁面時,將生成ajax調用,並且在更改選擇標簽時將通過傳遞選擇的參數來生成適當的結果。

我們可以使用更多信息來幫助解決此問題,但我將盡力而為。

我猜想$_POST["NomEmp"]中的$_POST["NomEmp"] ==“”,因此else正在運行,這再次顯示了整個表。

我不知道在fill_emp函數中將“ value”屬性設置fill_emp 該函數中$row[1]的值是什么?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM