Php使用下拉列表

时间:2018-05-23 16:34:43

标签: php mysql

enter image description here我想用下拉列表在一个表中显示用户数据,第一个选项显示所有用户,但是当我点击一个名字时它仍然显示所有用户,我想我的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;  
}  
?>

任何人都可以帮我找到这个问题吗?任何帮助,将不胜感激。 感谢。

2 个答案:

答案 0 :(得分:0)

只需更改下面提到的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调用,并且在更改select标记时将生成调用,并传递所选参数以获得适当的结果。

答案 1 :(得分:0)

我们可以使用更多的信息来帮助解决这个问题,但我会尝试让球滚动。

我猜想usr.php中的 /opt/elasticbeanstalk/hooks/configdeploy/post/99_kill_default_nginx.sh: mode: "000755" owner: root group: root content: | #!/bin/bash -xe rm -f /etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf status=`/sbin/status nginx` if [[ $status = *"start/running"* ]]; then echo "stopping nginx..." stop nginx echo "starting nginx..." start nginx else echo "nginx is not running... starting it..." start nginx fi 是===&#34;&#34;所以else正在运行,它再次显示整个表格。

我无法说出你在设置&#34;值&#34;属性为$_POST["NomEmp"]函数。该职能中fill_emp的价值是多少?