2013-04-09 55 views
0

以下代码的思想是,用户将根据维护操作进行搜索否,操作类型,执行操作的成员或需要PC的员工保养。例如,当用户选择操作类型时,将出现一个下拉菜单,然后他选择该类型。之后将出现一张维护信息表。例如,用户选择打印类型。该表将显示以下信息:如何隐藏基于先前搜索显示的先前表格行

操作没有,会员名称,员工姓名,维护类型

1001阿德姆,约翰,印刷 1003乔治·史密斯,印刷 1010威廉·约翰,印刷

我面对的问题是,当用户选择操作no的搜索,例如,他选择操作no是1001,其余的行(基于上一次搜索显示的1003和1010)仍然显示出来(它们必须隐藏,因为它们与搜索类型不匹配)。

的代码是

<script> 
function check() { 
    var dropdown = document.getElementById("OpType"); 
    var current_value = dropdown.options[dropdown.selectedIndex].value; 

    if (current_value == "OpNo") { 
     document.getElementById("operationno").style.display = "block"; 
     document.getElementById("MainType").style.display = "none"; 
     document.getElementById("MemName").style.display = "none"; 
     document.getElementById("EmpName").style.display = "none"; 
    } 
    else if (current_value == "OpTyp") { 
     document.getElementById("MainType").style.display = "block"; 
     document.getElementById("MemName").style.display = "none"; 
     document.getElementById("EmpName").style.display = "none"; 
     document.getElementById("operationno").style.display = "none"; 
    } 
    else if (current_value == "OpMem") { 
     document.getElementById("MemName").style.display = "block"; 
     document.getElementById("operationno").style.display = "none"; 
     document.getElementById("MainType").style.display = "none"; 
     document.getElementById("EmpName").style.display = "none"; 

    } 
    else if (current_value == "OpEmp"){ 
     document.getElementById("MemName").style.display = "none"; 
     document.getElementById("operationno").style.display = "none"; 
     document.getElementById("MainType").style.display = "none"; 
     document.getElementById("EmpName").style.display = "block"; 

    } 
    else if (current_value == "blank") { 
     document.getElementById("MainType").style.display = "none"; 
     document.getElementById("MemName").style.display = "none"; 
     document.getElementById("EmpName").style.display = "none"; 
     document.getElementById("operationno").style.display = "none"; 

    } 
} 
</script> 

<form name="f1" action="FollowOperations.php" method="post"> 
<select id="OpType" onChange="check();"> 
<option value="blank">Choose</option> 
<option value="OpNo">Operation No</option> 
<option value="OpTyp">Operation Type</option> 
<option value="OpMem">Maintenance Member</option> 
<option value="OpEmp">Employee</option> 
</select><br> 

<input class="tb10" type="text" id="operationno" size="4" style="text-align: center" style="display: none"> 

<select id="MainType" style="display: none"> 
<option value="blank">Choose</option> 
<option value="printing">Printing</option> 
<option value="maintenance">PC Maintenance</option> 
<option value="internet">Internet Problem</option> 
<option value="software">Software</option> 
<option value="email">Email Problem</option> 
<option value="usbcd">USB/CD Problem</option> 
</select> 

<select id="MemName" style="display: none"> 
<option value="blank">Choose</option> 
<option value="john">John</option> 
<option value="hen">Hen</option> 
</select> 

<select id="EmpName" style="display: none"> 
<option value="blank">Choose</option> 
<option value="smith">Smith</option> 
<option value="will">William</option> 
<option value="Gor">George</option> 
</select> 

<input type="submit" value="Submit" class="button" /> 
</form> 

<?php 
    if (isset($_POST['formsubmitted'])) 
    { 

     $operationno = $_POST['ono']; 
      echo "<table id='tfhover' class='tftable' border='1' align='center'>"; 
      echo "<tr align='center'><th></th><th align='center'>Type</th><th>Employee</th><th align='center'>Member</th><th align='center'>Operation No</th></tr>"; 
       $query_retrieve_maintenance = "Select * from Maintenance where ID = '$operationno'"; 
       $result_retrieve_maintenance = mysqli_query($dbh, $query_retrieve_maintenance);   
        while($row1 = mysqli_fetch_array($result_retrieve_maintenance)) 
         { 
          echo "<tr>"; 
          echo "<td><a href='PastOperationsDet.php?operation_number=".$row1['ID']."' target='_blank'>Show</a></td> "; 
          echo "<td>".$row1['Type']."</td> "; 
          echo "<td>".$row1['MemName']."</td> "; 
          echo "<td>".$row1['EmpName']."</td> "; 
          echo "<td>".$row1['ID']."</td> "; 
         } 

     $MainType = $_POST['mt']; 
       $query_retrieve_by_type = "Select * from Maintenance where Type = '$MainType'"; 
       $result_retrieve_by_type = mysqli_query($dbh, $query_retrieve_by_type); 
        while($row1 = mysqli_fetch_array($result_retrieve_by_type)) 
         { 
          echo "<tr>"; 
          echo "<td><a href='PastOperationsDet.php?operation_number=".$row1['ID']."' target='_blank'>Show</a></td> "; 
          echo "<td>".$row1['Type']."</td> "; 
          echo "<td>".$row1['MemName']."</td> "; 
          echo "<td>".$row1['EmpName']."</td> "; 
          echo "<td>".$row1['ID']."</td> "; 
         } 

     $MemName = $_POST['mn']; 
       $query_retrieve_by_member = "Select ID from Member where Name = '$MemName'"; 
       $result_retrieve_by_member = mysqli_query($dbh, $query_retrieve_by_member); 
     $membID = mysqli_fetch_row($result_retrieve_by_member); 
       $memb_id = $membID[0]; 
     $query_retrieve_by_membername = "Select * from Maintenance where MemberID = '$memb_id'"; 
       $result_retrieve_by_membername = mysqli_query($dbh, $query_retrieve_by_membername); 
        while($row1 = mysqli_fetch_array($result_retrieve_by_membername)) 
         { 
          echo "<tr>"; 
          echo "<td><a href='PastOperationsDet.php?operation_number=".$row1['ID']."' target='_blank'>Show</a></td> "; 
          echo "<td>".$row1['Type']."</td> "; 
          echo "<td>".$memb_id."</td> "; 
          echo "<td>".$row1['EmpName']."</td> "; 
          echo "<td>".$row1['ID']."</td> "; 
         }  

     $EmpName = $_POST['me']; 
       $query_retrieve_by_employee = "Select ID from Employee where Name = '$EmpName'"; 
       $result_retrieve_by_employee = mysqli_query($dbh, $query_retrieve_by_employee); 
     $emplID = mysqli_fetch_row($result_retrieve_by_employee); 
       $empl_id = $emplID[0]; 
     $query_retrieve_by_emplid = "Select * from Maintenance where EmployeeID = '$empl_id'"; 
       $result_retrieve_by_emplid = mysqli_query($dbh, $query_retrieve_by_emplid); 
        while($row1 = mysqli_fetch_array($result_retrieve_by_emplid)) 
         { 
          echo "<tr>"; 
          echo "<td><a href='PastOperationsDet.php?operation_number=".$row1['ID']."' target='_blank'>Show</a></td> "; 
          echo "<td>".$row1['Type']."</td> "; 
          echo "<td>".$row1['MemName']."</td> "; 
          echo "<td>".$empl_id."</td> "; 
          echo "<td>".$row1['ID']."</td> "; 
         } 
      echo "</table>";    
    } 
?> 
+0

您可以尝试隐藏所有行,然后仅显示符合所选标准的行。 (我不能理清这么多的代码:() – Ejaz 2013-04-09 07:42:56

回答

1

Nass,

我冒昧地为这个案件做了一个小提琴。 看看它,并问你是否不明白它。

我希望它有帮助。

亲切的问候,亚历克斯

在这个环节,http://jsfiddle.net/QthB6/10/,它的成立在一个干净的方式,等等;

function blockify() {  // for style.display = "block" 

} 

function unblockify() { // for style.display = "none" 

} 
1

在第一次尝试简化代码

function check() { 
    var dropdown = document.getElementById("OpType"); 
    var current_value = dropdown.options[dropdown.selectedIndex].value; 
    var aIds = ['operationno', 'MainType', 'MemName', 'EmpName']; 
    for(var i = aIds.length; i>=0; i--) { 
     var ob = document.getElementById(aIds[i]); 
     if(current_value == aIds[i]) { 
      ob.style.display = "block" 
     } 
     else { 
      ob.style.display = "none" 
     } 
    } 

    .... 

    <select id="OpType" onChange="check();"> 
    <option value="blank">Choose</option> 
    <option value="operationno">Operation No</option> 
    <option value="MainType">Operation Type</option> 
    <option value="MemName">Maintenance Member</option> 
    <option value="EmpName">Employee</option> 
    </select> 

    .... 

然后追加“名” atrtribute您输入的和选择的领域。

然后尝试print_r您的$ _POST数组来查看它的值。