繁体   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